On Mon, Jan 31, 2011 at 5:05 PM, Jarmo Pertman <jarmo.p / gmail.com> wrote:

> Hi!
>
> I was just wondering if there is possible to write recursive regular
> expressions in Ruby? As i'm understanding at this moment then there
> isn't. Prove me wrong.
>
> If you're not aware of such possibility in Perl for example then here
> is one good blog post about it
> http://www.catonmat.net/blog/recursive-regular-expressions
>
> It seems that also PHP has such a functionality.
>
> Jarmo
>
>
1.9.2 has it, here is an example:

regex = /^(?<bracketed>\[(\g<bracketed>|\d)\])$/
       '1'.match regex # => nil
     '[1]'.match regex # => #<MatchData "[1]" bracketed:"[1]">
   '[[1]]'.match regex # => #<MatchData "[[1]]" bracketed:"[[1]]">
 '[[[1]]]'.match regex # => #<MatchData "[[[1]]]" bracketed:"[[[1]]]">


I found it in the Christmas edition of PragPub (
http://pragprog.com/magazines/download/19.PDF) they talk about it more in
depth, as well, if you want more info.