c:\@Work\Perl\monks>perl -wMstrict -MData::Dump -le "my @words = qw(he xhelper hello hel help helper helping); my $t = 'helper'; ;; my @hits = grep overlap($_, $t, 3), @words; dd \@hits; ;; @hits = grep overlap($_, $t, 4), @words; dd \@hits; ;; @hits = grep overlap($_, $t, 6), @words; dd \@hits; ;; @hits = grep overlap($_, $t, 7), @words; dd \@hits; ;; sub overlap { my ($s, $t, $min) = @_; ;; return ($s ^ $t) =~ m{ \A \x00{$min,} }xms; } " ["hello", "hel", "help", "helper", "helping"] ["help", "helper", "helping"] ["helper"] []