use strict;
my $str = '<p dir="ltr" style="text-align: justify;">Bangkok is the capital city of <a data-geo-type="country" data-geo-id="212" href="https://www.fazwaz.com/property-for-sale/thailand" title="Thailand">Thailand</a> and has started to establish itself as the central business hub and a tourism hotspot within Asia. <a data-geo-type="country" data-geo-id="212" href="https://www.fazwaz.com/property-for-sale/thailand" title="Thailand">Thailand</a> receives over 30 million visitors each year, with Bangkok airport handling over 35 million visitors each year and <a data-geo-type="location" data-geo-id="30590" href="https://www.fazwaz.com/property-for-sale/thailand/loei/chiang-khan/that" title="that">that</a> number is increasing at an impressive rate.</p> <p dir="ltr" style="text-align: justify;">Many visitors spend days or weeks <a href="https://www.yondertours.com/bangkok-tours-03" data-cke-saved-href="https://www.yondertours.com/bangkok-tours-03">exploring the city of Bangkok</a>, a city <a data-geo-type="location" data-geo-id="30590" href="https://www.fazwaz.com/property-for-sale/thailand/loei/chiang-khan/that" title="that">that</a> is one of the most diverse and culturally fulfilling destinations of the world. If you are looking for things to do, Bangkok has plenty of options, from the floating markets, shopping malls, street food, traffic-filled streets and crazy nightlife which attracts crowds from Asia, the Middle East and all over the world to enjoy the lifestyle, with many people living and working and retiring within the Bangkok area and ultimately purchasing their own Bangkok property to live in amongst the other 9 million local residences, which make up 13% of the country’s population only living a few kilometres away from each other.</p>';
my $regex = qr/<a (data-geo-type[^>]+) (.+?title="that")>.*?<\/a>/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