use strict;
my $str = 'Jan 15 2025
January 15 2025
Feb 15 2025
February 15 2025
Mar 15 2025
March 15 2025
Apr 15 2025
April 15 2025
May 15 2025
Jun 15 2025
June 15 2025
Jul 15 2025
July 15 2025
Aug 15 2025
August 15 2025
Sep 15 2025
September 15 2025
Oct 15 2025
October 15 2025
Nov 15 2025
November 15 2025
Dec 15 2025
December 15 2025
Febtember 39 9382';
my $regex = qr/(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)(?:r?uary|ch|il|e|y|ust|tember|ober|ember)? +\d{1,2} +\d{4}/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