I'm trying to find out how many captures a compiled regular expression will do. My first try was good enough
for me, but hv pointed out several cases where it could break. While refining the code I came upon several other
cases and wrote a big test suite.

The only case I can't handle yet is (?{ ... }) and it
proves to be the most difficult. Because it can contain
Perl code, there are many ways to defeat my little parsing skills. I'm looking for a way to safely ignore the content of
(?{ ... }) and (??{ ... }) (consider
how lucky I am that the regular expression engine is not reentrant...)