$str =~ s/(^|\G$RE{balanced}{-parens=>'<>'})([^<]+)/\U$1\E$2/g; # Again? (and now I feel a DUH! coming on (: $str =~ s/($RE{balanced}{-parens=>'<>'})/\U$1/g;