sub inclusive { ($chunk, $word) = @_; # sorry, no 'my' here my $r; $r = qr{ (??{ "[^\Q$word\E]*" }) ((??{ "[\Q$word\E]" })) (?{ substr($word, index($word,$1), 1) = "" }) (?(?{ length $word })(??{ $r })) | (?!) }x; scalar $chunk =~ $r; }