in reply to capturing matching parenthesis

There's also Regexp::Common::balanced. For example:
use Regexp::Common qw(balanced); if ($foo =~ / ( $RE{balanced} ) /x) { print "grabbed $1"; }
If you look at the documentation, you'll see that it can actually be used very flexibly -- it can handle proper nesting of mixed brackets (e.g. () and {}.

Oh, and beware the lowercase 'b' -- took me a few confused tries to install it from CPAN till I noticed that caveat ;)

--Stevie-O
$"=$,,$_=q>|\p4<6 8p<M/_|<('=> .q>.<4-KI<l|2$<6%s!<qn#F<>;$, .=pack'N*',"@{[unpack'C*',$_] }"for split/</;$_=$,,y[A-Z a-z] {}cd;print lc