$pattern = qr/r(.)(.)/; my $replace = sub { "$_[0]ead" }; $s1 =~ s/$pattern/++$k && $replace->( $2 )/ge;