use strict;
my $str = '### Do not type in the full URL (e.g. "sub.example.com/blahblah")
### Use the path only, starting with the first slash
### - Pranav Mishra
# Generic API
## Regex: ^/api([/?].*)?$
/api?some_random_api_code_here
# Health Check
## Regex: ^/healthz.*$
/healthz/1
# PrivateBin test
## Regex: [\\w]{16}#[\\w]{44}$
/?6264cc7c26fd522b#6LgXAArG8BYwFsCnFY8QG7w65bfh3fvTAbx9T9aE3jG3
/?7b01a9919ac887ba#FdvmDkrcGX2F6Gvc1tq15xEaaLzMMBoPj6AZVsGPL9VP
/?c6e27eda79460e19#2vGuJsfKvKr1U2vAtDPHAoCJxXZ2jXj8QtX3GPovMr4M
/?b70ec2de34888ae8#Dz1PRy9raeFFaTCu3453gz9tqWBu1YCMkYkuUuy2f93M
';
my $regex = qr`[\w]{16}.[\w]{44}$`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