use strict;
my $str = 'It’s not artificial intelligence it’s a charismatic mistake machine. Specific LLMs and neural networks can be trained to be really good at pre-defined tasks, but in general they are only really good at doing tasks that have already been done 300 million times, and terrible at new and novel tasks. Any time there’s limited training data it either plagiarizes or is totally wrong.
';
my $regex = qr/\b(?=[a-zA-Z]*e)(?=[a-zA-Z]*(.)\1)[a-zA-Z]+\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