#! perl -slw use strict; my $para = do{ local $/; }; $para =~ tr[ \t\n][ ]s; ## normalise whitespace my $longest = ''; length( $1 ) > length( $longest ) and print '?', $longest = $1 while $para =~ m[(.+)(?=.*?\1)]ig; print $longest; __DATA__ Ah, I am kind of embarrassed not to have thought of this. I was so focused on look ahead, for some reason, but yeah, this works. The thing is, I need to match more than one sentence, potentially whole sections of texts can be duplicated and I need to find them. I will try your solution see how it goes. Thanks!I am kind of embarrassed not to have thought of this for some reason, but yeah, this works. The thing is, I need to match more than one sentence, #### C:\test>junk24 ?Ah, ?I am kind of embarrassed not to have thought of this ?for some reason, but yeah, this works. The thing is, I need to match more than one sentence, for some reason, but yeah, this works. The thing is, I need to match more than one sentence,