$seq = 'GGTACACAGAAGCCAAAGCAGGCTCCAGGCTCTGAGCTGTCAGCACAGAGACCGAT'; $mask = 'GGTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNT'; ($srch = $mask) =~ s/(N+)/($1)/g; $srch =~ tr/N/./; $cnt = 1; ($repl = $mask) =~ s/N+/" . lc(\$" . $cnt++ . ") . "/ge; print $srch, "\n", $repl, "\n\n", $seq, "\n"; $seq =~ s/$srch/$repl/ee; print $seq, "\n"; #### GGT(....................................................)T GGT . lc($1) . T GGTACACAGAAGCCAAAGCAGGCTCCAGGCTCTGAGCTGTCAGCACAGAGACCGAT GGTacacagaagccaaagcaggctccaggctctgagctgtcagcacagagaccgaT