use strict;
my $str = '<?xml version="1.0" encoding="UTF-8"?>
<e2currentserviceinformation>
<e2service>
<e2servicereference>1:0:19:33F5:3ED:1:C00000:0:0:0:</e2servicereference>
<e2servicename>ORF2St HD</e2servicename>
<e2providername>ORF</e2providername>
<e2videowidth>1280</e2videowidth>
<e2videoheight>720</e2videoheight>
<e2servicevideosize>1280x720</e2servicevideosize>
<e2iswidescreen>
1 </e2iswidescreen>
<e2apid>3001</e2apid>
<e2vpid>3000</e2vpid>
<e2pcrpid>3000</e2pcrpid>
<e2pmtpid>301</e2pmtpid>
<e2txtpid>3005</e2txtpid>
<e2tsid>1005</e2tsid>
<e2onid>1</e2onid>
<e2sid>13301</e2sid>
</e2service>
<e2eventlist>
<e2event>
<e2eventservicereference>1:0:19:33F5:3ED:1:C00000:0:0:0:</e2eventservicereference>
<e2eventservicename>ORF2St HD</e2eventservicename>
<e2eventprovidername>ORF</e2eventprovidername>
<e2eventid>42253</e2eventid>
<e2eventname>Daheim in Österreich</e2eventname>
<e2eventtitle>Daheim in Österreich</e2eventtitle>
<e2eventdescription></e2eventdescription>
<e2eventstart>1514392200</e2eventstart>
<e2eventduration>3600</e2eventduration>
<e2eventremaining>1034</e2eventremaining>
<e2eventcurrenttime>1514394766</e2eventcurrenttime>
<e2eventdescriptionextended></e2eventdescriptionextended>
</e2event>
<e2event>
<e2eventservicereference>1:0:19:33F5:3ED:1:C00000:0:0:0:</e2eventservicereference>
<e2eventservicename>ORF2St HD</e2eventservicename>
<e2eventprovidername>ORF</e2eventprovidername>
<e2eventid>42254</e2eventid>
<e2eventname>konkret</e2eventname>
<e2eventtitle>konkret</e2eventtitle>
<e2eventdescription></e2eventdescription>
<e2eventstart>1514395800</e2eventstart>
<e2eventduration>950</e2eventduration>
<e2eventremaining>1984</e2eventremaining>
<e2eventcurrenttime>1514394766</e2eventcurrenttime>
<e2eventdescriptionextended></e2eventdescriptionextended>
</e2event>
</e2eventlist>
</e2currentserviceinformation>
';
my $regex = qr/.*?<e2eventduration>(.*?)</e2eventduration/p;
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