my $pchr = "KQRBNP"; my $w1 = "QRKPNBNBQRK"; my $w2 = ""; my $re = join "|", map { ".*$_" } split //, $pchr; $w1 =~ m/^(?:$re)(?<=(.))(?{ $w2 .= $1 })(*FAIL)/; print "$w1 -> $w2\n"