my $greekReplace = "alpha|beta|chi|delta|epsilon|eta|gamma|hbar|kappa|lambda|mu|nu|omega|phi|pi|psi|rho|sigma|tau|theta"; my $string = '3*mu'; $string =~ s/($greekReplace)/\\$1 /isg; #### #!/usr/bin/perl use strict; use warnings; my $greekReplace = "alpha|beta|chi|delta|epsilon|eta|gamma|hbar|kappa|lambda|mu|nu|omega|phi|pi|psi|rho|sigma|tau|theta"; my %strings = ( mu => { valid => '\mu ' }, amu => { valid => 'amu' }, bmu => { valid => 'b\mu ' }, cmu => { valid => 'c\mu ' }, mud => { valid => '\mu d' }, '3*mu' => { valid => '3*\mu ' }, ); foreach my $string (sort keys %strings) { print "Before: '$string'; "; my $string2 = $string; $string2 =~ s/($greekReplace)/\\$1 /isg; print "After: '$string2' ; Should be: $strings{$string}->{valid}; "; print $string2 eq $strings{$string}->{valid} ? "Passes\n" : "FAILS\n"; } print "\n";