This is a POSIX version of parseRegex that allows NUL characters. LazyPossessiveBackrefs are not recognized. Anchors ^ and $ are recognized.
The PGroup returned always have (Maybe GroupIndex) set to (Just _) and never to Nothing.
Return either an error message or a tuple of the Pattern and the largest group index and the largest DoPa index (both have smallest index of 1). Since the regular expression is supplied as [Char] it automatically supports unicode and '\NUL' characters.
decodePatternSet cannot handle collating element and treats equivalence classes as just their definition and nothing more.