s/ ( ^Tag \s+ \{ [^\}]* \n \s+ Name \s+ \") (.*?) (\" [^\}]* \} ) /join '', $1, despace($2), $3 /emsgx; print; sub despace { my $x = shift; $x =~ s/ //g; return $x; }