use strict;
my $str = 'acritan
aesthophysiology
amphimictical
baruria
calomorphic
disarmature
effusive
fluted
fusoid
goblinize
nihilistic
noisefully
picrorhiza
postarytenoid
revolutionize
suprasphanoidal
suspenseful
tapachula
transmit
unversatile
vibetoite
abba
anallagmatic
bassarisk
chorioallantois
coccomyces
commotive
engrammatic
glossoscopia
hexacoralla
hippogriffin
inflammableness
otto
overattached
saffarid
sarraceniaceae
scillipicrin
tlapallan
trillion
unclassably
unfitting
unsmelled
warrandice';
my $regex = qr/^(?!\w*(\w)(\w)\2\1).*/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