\s])"; const SHREF_TARGET_LAST = "[\w/=](?!?%s)", self::BOLDITALIC_TOKEN), array("(?P!?%s)" , self::BOLD_TOKEN), array("(?P!?%s)" , self::ITALIC_TOKEN), array("(?P!?%s)" , self::UNDERLINE_TOKEN), array("(?P!?%s)" , self::STRIKE_TOKEN), array("(?P!?%s)" , self::SUBSCRIPT_TOKEN), array("(?P!?%s)" , self::SUPERSCRIPT_TOKEN), array("(?P!?%s(?P.*?)%s)" , self::STARTBLOCK_TOKEN, self::ENDBLOCK_TOKEN), array("(?P!?%s(?P.*?)%s)", self::INLINE_TOKEN, self::INLINE_TOKEN), ); static $post_rules = array( # WikiPageName array("(?P!?(?!?\[\w%s(?:\w%s)+(?:\w%s(?:\w%s)*[\w/]%s)+(?:@\d+)?(?:#%s)?(?=:(?:\Z|\s)|[^:a-zA-Z]|\s|\Z)\s+(?:%s|[^\]]+)\])", self::UPPER, self::LOWER, self::UPPER, self::LOWER, self::LOWER, self::XML_NAME, self::QUOTED_STRING), # [21450] changeset "(?P!?\[(?:(?:[a-zA-Z]+)?\d+|[a-fA-F0-9]+)\])", # #ticket "(?P!?#(?:(?:[a-zA-Z]+)?\d+|[a-fA-F0-9]+))", # {report} "(?P!?\{([^}]*)\})", # e-mails array("(?P!?%s)" , self::EMAIL_LOOKALIKE_PATTERN), # > ... "(?P^(?P>(?: *>)*))", # &, < and > to &, < and > "(?P[&<>])", # wiki:TracLinks array( "(?P!?((?P%s):(?P%s|%s(?:%s*%s)?)))", self::LINK_SCHEME, self::QUOTED_STRING, self::SHREF_TARGET_FIRST, self::SHREF_TARGET_MIDDLE, self::SHREF_TARGET_LAST), # [wiki:TracLinks with optional label] or [/relative label] array( "(?P!?\[(?:(?P%s)|(?P%s):(?P%s|[^\]\s]*))(?:\s+(?P