my $regex = \b(.{1,50})\b(?i)('.join("|",@words).')\b(.{1,50})\b'; my $expr = qr /$regex/; # Later my $matchtext; while ($text=~m/$expr/g){ $matchtext.= "...$1$2$3...

" ; }