You aren't doing anything wrong, this is how it works right now. DEFINE is for situations where you want to construct something like a validation routine from a grammar.
The issue of not being able to access named capture buffers after recursion actually applies to all capture buffers from a nested construct, such as when using (??{...}) and not just with named recursion. Its a limitation of the overall engine and its not likely to be changed or fixed anytime soon. (Especially as I have more things to do these days than I have time to do them even without considering Perl core hacking).
It has been discussed a number of times on #p5p that it would be nice to build a parse tree from named capture rules, but its enough work that it certainly wont be done in time for 5.10.0, maybe it will be done in a latter 5.10.x or even 5.12, but I cant say for sure.
In reply to Re: 5.10 regexes with subpatterns
by demerphq
in thread 5.10 regexes with subpatterns
by renormalist
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |