Ack. I guess spending two days trying to grok yacc and Parse::Yapp led me to choose to do it the hard way. Thanks for a healthy does of simplicity.
Unfortunately, the following regexp break your very good idea:
$regex = qr/foo/; # should return 0
That only means your code needs at least one capture:
sub captures { my $re = shift; return scalar ( @_ = '' =~ /(?:($re))?/ ) - 1; }
This passes my whole test suite, expect for this regexp:
$regex = qr/(?x) # (comment) (?-x) # (capture) (?x) # (comment)/;
Which dies horribly with the message:
Unmatched ( in regex; marked by <-- HERE in m/(?:(( <-- HERE ?-xism:(?x) # (comment)
(?-x) # (capture) (?x) # (comment))))?/
So, $regex compiles, but qr/(?:($regex))?/ doesn't? I'm lost.
In reply to Re: Re: Trying to count the captures in a compiled regular expression
by BooK
in thread Trying to count the captures in a compiled regular expression
by BooK
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |