my $text = '1+2 + dfdf'; my $output = ""; while ($text =~ m/((.*?<\/maths>)|([^<]*))/gs) { if ($2) { $output .= $2; } else { my $segment = $3; $segment =~ s/+/ + /g; $output .= $segment; } } print $output . "\n";