##
s/(foo|bar)/$subs{$1}/g
##
##
s/(Xaa11|Xaa1)/$subs{$1}/g
##
##
my $pat = join '|', map quotemeta, sort { length($b) <=> length($a) } keys(%subs);
s/($pat)/$subs{$1}/g;
##
##
my $pat = join '|', map quotemeta, keys(%subs);
s/\b($pat)\b/$subs{$1}/g;