use strict;
my $str = '== {{int:filedesc}} == {{Artwork | description = {{en|1=At the equestrian show. A man stands in front of a stall selling radios.}} | title = ("Ultimate" stall) | artist = {{Creator:Tudor Washington Collins}} | date = 1938 | place of creation = | source = {{Images from Auckland Museum|section=library|object=photography|id=79483}} [https://api.aucklandmuseum.com/id/media/p/806abf5c0952f972e56bc95fed841c5031bcb9ff Photo] | accession number = 79483 (object number) | object type = | technique = Silver gelatin dry plate | dimensions = | institution = {{Institution:Auckland War Memorial Museum}} | permission = This image has been released as "CCBY" by Auckland Museum. For details refer to the [[Commons:Batch_uploading/AucklandMuseumCCBY|Commons project page]]. | credit line = | notes = | other_versions = <gallery> ("Ultimate" stall) (AM 79483-2).jpg </gallery> }} == {{int:license-header}} == {{CC-BY-4.0|1=Auckland Museum}} [[Category:Images uploaded by Fæ]] [[Category:1930s photographs in Auckland Museum]] [[Category:Tudor Washington Collins]] [[Category:Radio in Auckland Museum]] [[Category:Images from Auckland Museum]]';
my $regex = qr/^(?>.+{{Images from Auckland Museum\|)(.*?)(?>}}.+)$/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