my $str = "1*(2+3)*(3+4)+5*(6+7)"; $str =~ /(?: \( .+? \) | [^+()] )+ (\+ .*)/x; say "Match: $1";