c:\@Work\Perl\monks>perl -wMstrict -le "my $desc = 'leave (only text) this () too -- does not (v(w(x)y)z) work'; $desc =~ s/\(.*?\)//gs; print qq{'$desc'}; " 'leave this too -- does not y)z) work' #### c:\@Work\Perl\monks>perl -wMstrict -le "use Regexp::Common qw(balanced); ;; my $desc = 'a (text) b () c (v(w(x)y)z) d ((())) e (unbalanced(balanced) f'; $desc =~ s{ $RE{balanced}{-parens => '()'} }{}xmsg; print qq{'$desc'}; " 'a b c d e (unbalanced f'