##
$string =~ s/(?<=\Q$first\E).*?(?=\Q$last\E)/$reserve/;
####
$first_start = index($_, $first);
if ($first_start >= 0) {
$first_end = $first_start + length($first);
$last_start = index($_, $last, $first_end);
if ($last_start >= 0) {
substr($_, $first_end, $last_start, $replace);
}
}