my $new_content = $content; if ($content =~ /\b($par1)(\W+(?:\w+\W+){1,$distance})?($par2)\b/i){ my ($res1, $res2, $res3) = ($1, $2, $3); $new_content =~ s/$res1\Q$res2\E$res3/<$tag$class> $res1<\/$tag>$res2<$tag$class> $res3<\/$tag>/i; } if ($content =~ /\b($par2)(\W+(?:\w+\W+){1,$distance})?($par1)\b/i){ my ($res1, $res2, $res3) = ($1, $2, $3); $new_content =~ s/$res1\Q$res2\E$res3/<$tag$class> $res1<\/$tag>$res2<$tag$class> $res3<\/$tag>/i; }