DB<6> $x = 'helloworldhellohellohihellohiworldhi'
DB<7> print "$1\n" while $x =~ /(\w+)(?=.*\1.*\1)/g
hello
o
l
hello
h
l
l
o
hi
h
l
####
DB<8> print "$1\n" while $x =~ /(\w{2,})(?=.*\1.*\1)/g
hello
hello
hi
####
sub repeat_finder_re {
my $n = shift;
'(\w{2,})(?=' . ('.*\\1'x($n-1)) . ')'
}