my $c=0; s/ \( (?{++$c}) | \) (?{--$c}) | ([^()]+) /$1 if ($c==0)/gex; #### s{([()]*)([^()]+)} {$c += $1=~y/(// - $1=~y/)//; $2 x !$c }ge;