private static function init_tags_regex()
 {
     if (!self::$is_tags_regex_init) {
         if (CrayonGlobalSettings::val(CrayonSettings::CAPTURE_MINI_TAG) || CrayonGlobalSettings::val(CrayonSettings::INLINE_TAG)) {
             $aliases = CrayonResources::langs()->ids_and_aliases();
             for ($i = 0; $i < count($aliases); $i++) {
                 $alias = $aliases[$i];
                 $alias_regex = CrayonUtil::esc_hash(CrayonUtil::esc_regex($alias));
                 if ($i != count($aliases) - 1) {
                     $alias_regex .= '|';
                 }
                 self::$alias_regex .= $alias_regex;
             }
         }
         // Add other tags
         self::$tags_regex = '#(\\s*\\[\\s*crayon\\b)';
         if (CrayonGlobalSettings::val(CrayonSettings::CAPTURE_MINI_TAG)) {
             self::$tags_regex .= '|([\\[]\\s*(' . self::$alias_regex . '))';
         }
         if (CrayonGlobalSettings::val(CrayonSettings::CAPTURE_PRE)) {
             self::$tags_regex .= '|(<\\s*pre\\b)';
         }
         if (CrayonGlobalSettings::val(CrayonSettings::INLINE_TAG)) {
             self::$tags_regex .= '|(' . self::REGEX_INLINE_CLASS . ')' . '|([\\{]\\s*(' . self::$alias_regex . '))';
         }
         if (CrayonGlobalSettings::val(CrayonSettings::PLAIN_TAG)) {
             self::$tags_regex .= '|(\\s*\\[\\s*plain\\b)';
         }
         if (CrayonGlobalSettings::val(CrayonSettings::BACKQUOTE)) {
             self::$tags_regex .= '|(`[^`]*`)';
         }
         self::$tags_regex .= '#msi';
         self::$is_tags_regex_init = TRUE;
     }
 }