Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number

Re^6: Regexp not capturing in named subrules

by diotalevi (Canon)
on Sep 16, 2009 at 18:36 UTC ( #795693=note: print w/ replies, xml ) Need Help??

in reply to Re^5: Regexp not capturing in named subrules
in thread Regexp not capturing in named subrules

I read the idea (?<name>...){0} in the Oniguruma documentation but it was applicable to Perl too. In Perl-5.10 implementation, (?:...){0} leaves active elements like regexp routines handy in the regexp. Really, that seems to work just fine. Anyway, it's pretty clear I'm likely doing something Yves never intended when he added (?&name) support.

⠤⠤ ⠙⠊⠕⠞⠁⠇⠑⠧⠊

Comment on Re^6: Regexp not capturing in named subrules
Select or Download Code
Replies are listed 'Best First'.
Re^7: Regexp not capturing in named subrules
by Corion (Pope) on Sep 16, 2009 at 18:49 UTC

    I think the way God Intended patterns to be defined for later use is

    qr/(?(DEFINE) (?<name>pattern) )/x

      Oh, hey. I didn't find that earlier because it seems to be misfiled under the (?(condition)yes-pattern|no-pattern) section but it goes on to answer my original question

      From perlre:

      /(?<NAME>(?&NAME_PAT)) (?(DEFINE) (?<NAME_PAT>....) )/x

      Note that capture buffers matched inside of recursion are not accessible after the recursion returns, so the extra layer of capturing buffers is necessary. Thus $+{NAME_PAT} would not be defined even though $+{NAME} would be.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://795693]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others taking refuge in the Monastery: (11)
As of 2015-12-01 09:26 GMT
Find Nodes?
    Voting Booth?

    What would be the most significant thing to happen if a rope (or wire) tied the Earth and the Moon together?

    Results (797 votes), past polls