... while ($text =~ m/$inpattern/xmsg) { my $first = substr $1, 1, -1; my $second = substr $2, 1, -1; $outpattern =~ s/\$1/$first/xmsg; $outpattern =~ s/\$2/$second/xmsg; } $text =~ s/$inpattern/$outpattern/gee; ...