##
s/
(.*ing)
(?:
.{0,2}
|
(?!bob).{3}
|
(?!fred|bill).{4}
|
.{5,}
)
(more)
/\1HIT\2/x;
####
my %bad_words = map { $_ => 1 } qw( bob fred bill );
s/
(.*ing)
(.*)
(?(?{ $bad_words{$2} })\A(?!\A))
(more)
/\1HIT\3/x;
####
s/(.*ing)(?!bob|fred|bill).*(more)/\1HIT\2/;