public static function format_mixed_code($code, $language, $hl)
 {
     self::$curr = $hl;
     self::$delim_pieces = array();
     // Remove crayon internal element from INPUT code
     $code = preg_replace('#' . CrayonParser::CRAYON_ELEMENT_REGEX_CAPTURE . '#msi', '', $code);
     if (self::$delimiters == NULL) {
         self::$delimiters = CrayonResources::langs()->delimiters();
     }
     // Find all delimiters in all languages
     if (self::$delim_regex == NULL) {
         self::$delim_regex = '#(' . implode(')|(', array_values(self::$delimiters)) . ')#msi';
     }
     // Extract delimited code, replace with internal elements
     $internal_code = preg_replace_callback(self::$delim_regex, 'CrayonFormatter::delim_to_internal', $code);
     // Format with given language
     $formatted_code = CrayonFormatter::format_code($internal_code, $language, $hl);
     // Replace internal elements with delimited pieces
     $formatted_code = preg_replace_callback('#\\{\\{crayon-internal:(\\d+)\\}\\}#', 'CrayonFormatter::internal_to_code', $formatted_code);
     return $formatted_code;
 }