in reply to pattern matching

Complicated regexes are for the weak; Herr Doktor Conway's code is for the strong. I have to say that Text::Balanced worked a bit differently than I thought it would; I plan on fiddling with it a bit and reporting back on it.
This code is not particularly beautiful, but it does show a use of Text::Balanced.
use Text::Balanced "extract_delimited"; my $out; my $r = ' if (c=e) { // delete this curly brace call pgme; call pgmd; } // delete this curly brace else {call pgmd; // keep these curly braces call pgmc;} if (c=e) { // delete this curly brace call pgme; call pgmd; } // delete this curly brace else {call pgmd; // keep these curly braces call pgmc;} if (c=e) { // delete this curly brace call pgme; call pgmd; } // delete this curly brace else {call pgmd; // keep these curly braces call pgmc;} if (c=e) { // delete this curly brace call pgme; call pgmd; } // delete this curly brace else {call pgmd; // keep these curly braces call pgmc;} '; while (($e, $r, $s) = extract_delimited ($r, "{\"}", '(?s)[^{]*')){ do {$out .= $r; last } unless $e ; if ($s =~/if /) { $e =~s/[{]//; # make sure we don't nuke something in a quoted block. $e = reverse $e; $e =~s/[}]//; $e = reverse $e; }; $out .= $s . $e; } print $out;