use strict;
my $str = 'word1 word1 word1 word word3 wordesd sdfsdf dsf sword1 word2 word2 word1 sdfsdf safsdfsdf word1
word1 word1 word1 word word3 wordsd sdfsdf dsf sword1 word2 word2 word1 sdfswdf safsdfsdf word1
word1 word1 word1 word word3 wordsd sdfsdf dsf sword1 word2 word2 word1 sdfsdf safsdfsdf word1
word1 word1 word1 word word3 wordsd sdfsdf dsf sword1 word2 word2 word1 sdfsdf safsdfsdf word1
word1 word1 word1 word word3 wordsdr sdfsdf dsf sword1 word2 word2 word1 sdfsdf safsdfsdf word1
word1 word1 word1 word word3 wordsd sdfsdf dsf sword1 word2 word2 word1 sdfsdf safsdfsdf word1
word1 word1 word1 word word3 wordsd sdfsdf dsf sword1 word2 word2 word1 sdfsdf safsdfsdf word1
word1 word1 word1 word word3 wordsd sdfsdf dsf sword1 word2 word2 word1 sdfsdf safsdfsdf word1
word1 word1 word1 word rword3 wordsd rsdfsdf dsf sword1 words2 word2 word1 sdfsdf safsdfsdf word1
word1 word1 word1 word word3 wordsd sdfsdf dsf sword1 word2 word2 word1 sdfsdf safsdfsdf word1
word1 word1 word1 word word3 wordsd sdfsdf dsf sword1 word2 word2 word1 sdfsdf safsdfsdf word1
word1 word1 word1 word word3 wordsd sdfsdf dsf sword1 word2 word2 word1 sdfsdf safsdfsdf word1
word1 word1 word1 word word3 wordsd sdfsdf dsf sword1 word2 word2 word1 sdfsdf safsdfsdf word1
word1 word1 word1 word word3 wordsd rsdfsdf dsf sword1 word2 word2 word1 sdfsdf safsdfsdf word1
word1 word1 word1 word word3 wordsd sdfsdf dsf sword1 word2 word2 word1 sdfsdf safsdfsdf word1
word1 word1 word1 word wored3 wordsd sdfsdf dsf sword1 word2 word2 word1 sdfsdf safsdfsdf word1
word1 word1 word1 word wordr3 wordsd sdfsdf dsf sword1 word2 word2 word1 sdfsdf safsdfsdf word1
word1 word1 word1 word word3 wordsd sdfsdf dsf sword1 word2 word2 word1 sdfsdf safsdfsdf word1
word1 word1 word1 word word3 wordsd sdfsdf dsf sword1 word2 word2 woerd1 sdfsdf safsdfsdf word1
word1 word1 word1 word word3 wordsd sdfsdf dsf sword1 word2 word2 word1 sdfsdf safsdfsdf word1';
my $regex = qr/\b(\w+)\s+\1\b/mp;
if ( $str =~ /$regex/g ) {
print "Whole match is ${^MATCH} and its start/end positions can be obtained via \$-[0] and \$+[0]\n";
# print "Capture Group 1 is $1 and its start/end positions can be obtained via \$-[1] and \$+[1]\n";
# print "Capture Group 2 is $2 ... and so on\n";
}
# ${^POSTMATCH} and ${^PREMATCH} are also available with the use of '/p'
# Named capture groups can be called via $+{name}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Perl, please visit: http://perldoc.perl.org/perlre.html