Context:
The function _getCompoundedRegex of Lexer.php builds the huge regexp which will parse the dokuwiki text.
That function automatically escape ‘(’ and ‘)’ (into ‘\\(’ and ‘\\)’)
Why ?
Because some patterns are smileys [ :-), :-(, etc... ] which must have their ')' quoted.
Bug
The quote is done in _getCompoundedRegex of Lexer.php and not at the source, at the pattern definition in the parsers...
That means one can not create a new parser with a pattern including a regexp group (?:xxx), because that pattern will be translated as '\\(?:xxx\\)', trying to read a '(xxx)', instead of group 'xxx'.
Illustration
See
http://wiki.splitbrain.org/wiki:discussion:windowssharelink as an example of such a bug, where the pattern is completed with a non-capturing regexo group to detect a windows share link expression
Quick fix:
add a special string which can be translated within getCompoundedRegex as '(?:' and ')'. For example, '<{<','>}>'
Real Fix:
No quote of '(' and ')' should be done in getCompoundedRegex function. That mean the registered pattern should already have quoted the '(' that need to be quoted, the other being regexp group (or 'masque') delimiter.