I understand regular expressions, but can someone please explain this:

re = %r/((?<pg>\((?:\\[()]|[^()]|\g<pg>)*\)))/

By the way, this only works with the Oniguruma engine (Ruby 1.9).

So, now that there is the capability to match balanced parens and so
forth, does this mean that the new regular expression engine can be
used to construct simple parsers (matching language constructs)?