Parses POSIX regular expressions and build its matchable form
regular-expression ::= alternative
alternative ::= sequence [ '|' sequence ]...
sequence ::= term [ term ]...
term ::= factor [ repeat-spec ]
repeat-spec ::= '?' | '*' | '+' | '{' integer [',' [integer]] '}'
factor ::= group | union | '.' | '^' | '$' | escaped | text
group ::= '(' alternative ')'
union ::= '[' union ']'
union ::= '[' ['^'] union_term... ']'
union_term ::= union_factor ['-' union_factor]
union_factor::= '[.' TEXT '.]' | '[:' CLASS ':]' | '[:<:]' | '[:>:]' | CHARACTER
escaped ::= '\'CHARACTER
text ::= A SEQUENCE NOT FOLLOWED BY EITHER '*', '+', '?', '{' OF NOT ESCAPED CHARACTERS
When no error the result if put in feature
'last_regular_expression'.
If there is an error, a human readable explanation
is retrievable by the feature 'last_error'.