use strict;
my $str = 'Guard
HL/H
-
HL/HL
L/L
L/L
HL/HL
L/HL
HL/HL
L/HL
HL/HL/HL
L/HL/HL
HL/HL
HL/HL/HL
HL/HL/HL/HL
HL/HL
HL/HL
HL/HL
HL/HL
HL/HL/HL
HL/HL/HL
HL/HL/HL
HL/HL
HL/HL
HL/HL
HL/HL
HL/HL/L/HL
HL/HL
HL/HL
HL/H
HL/HL
HL/HL
HL/HL
HL/HL
HL
HL/HL
HL/HL
HL/HL
HL
LH/LH
L/H
HL/HL
HL/HL
HL
LH/LH
L/H
HL/HL
HL/HL
HL/HL
HL/HL
HL/HL/HL
HL/HL/HL
HL
HL
HL
HL
HL
(B+F)+LP+LK
(B/F)+LP+LK
LP+LK
HL
HL
HL
HL
L
HL
L
HL
HL
HL
L
L
L
L
L
L
HL
LP+LK
-
-
-
F/B+LP+LK
F+LP+LK
HL
HL
HL
HL
HL
H
HL
LP+LK
B+LP+LK on backturned opponent
HL
LP+LK
HL
HL
HL
HL
HL
H
B/F+LP+LK
LP+LK
LP+LK
LP+LK
LP+LK
LP+LK
LP+LK
=+
=+
LP+LK
H
H
HL
HL
HL
LP+LK
HL
HL
HL
LP+LK
HL
HL
L
HL
L
L
HL
LP+LK
HLx2
HL
HL
HL
B+LP+LK
B/F+LP+LK
B/F+LP+LK
B/F+LP+LK
HL
HL
HL
HL
HL
LP+LK
Close to Oponnent On Air LP+LK
LP+LK
(F)+LP+LK
HL/HL/HL
HL
HL/HL
HL
LP+LK
HL
HL
HL
L
L
L
LP+LK
HL
HL
HL
B+LP+LK
HL
HL
(Air) LP+LK
LP+LK
LP+LK
B+LP+LK
LP+LK
HL
HL
HL
LP+LK
(B/F)+LP+LK
H
F+LP+LK
HL
H/H
HL
HL
HL
HL
HL/HL
HL/HL/HL
HL/HL/HL
HL
HL
HL
HLx7
HL/HL/HL
HLx4
HLx3+HL/Lx3 Down
HL/HL/HL
HL
HL
HL
HL
HL
HL
HL
HL
HL
HL
HL
HL
HL
HL
H
H
HL
HL
HL
L
H
H
HL
Impossible
HL
H
HL
HL
H
H
H
H
H
H
H
H
H
H
H
H
H
HL
HL
HL
H
HL
HL
HL
L
HL
HL
HL
HL
HL
HL
HL
HL
H
H
H
H
HL
H
HL
Impossible
HL
HL
HL
H
H
H
H
H
HL
HL/HL
HL
H
HL
HL
H
H
H
HL
H
HL
L
H
HL
HL
HL
HL
HL
H
HL
HL
H
H
H
HL/HL
HL
-
HL
H
H
HL
HL
HL/HL
HL
HL
HL
HL
HL
HL
HL
HL
HL
HL
Impossible
Impossible
Impossible
HL
HL
HL
HL
HL
HL
HL
HL
HL
HL
HL
HL
L
L
L
HL
HL
HL
HL
HL
HL
HL
HL
L
L
L
L
L
L
L
L
L
L
L
HL
L
HL
HL
HL
HL
HL
HL
L
L
L
L
HLx1~5
HLx1~5
HLx1~5
HL
HL
HL
HL
HL
HL
HL
HL
HL
HL
HL
HL
HL
HL
L
L
L
HL
HL
HL
HL
HL
HL
Impossible
HL
H
H
H
HL
HL
Impossible
Impossible
Impossible
Impossible
Impossible
Impossible
H
H
HL
HL
HL
HL
HL
HL
HL
HL
HL
HL
L
L
L
L
HL/HL/HL
HL/HL
Impossible
Impossible
Impossible
HL
Impossible
Impossible
Impossible
HL
HL
HL
HL
HL
HL
Hx2
HL
Hx2
HL
HL
HL
H
HLx4
HL
HL
HLx3
HL
L/HL
HL/HL
HL
H
HLx2
HL/HL
HL/HL
HL/HL
HL/HL
HL/HL
HL/HL
HL
HLx2
HL
HL
HL
HL
H/H
H
HL/HL
HL/HL/HL
HL
HL
HL/HL/HL
HL/H
L
HL/HL
HL
H
H
H(far) or L(close)
H
HLx2
HL
HL
HL
-
HL
HL/HL/HL
HL/HL/HL
H
HL/HL/HL/HL
HL/HL/HL/HL/HL
H
HL/HL/HL
HL
HL/HL
HL
HL
HL
HL
H/H
H/H
H/H
H
HL
HL
HL
HL
HL
HL
HL
HL
HL
HL
HL
HL
HL
HL
L
L
L
L
L
L
L
HL
HL
HL
HL
HL
L
L
L
L
L
L
L
L
L
L
H
HL
HL
H
H
H
HL
HL
HL
HL
HL
HL
HL
HL
HL
HL
HL
HL
HL
HL
HL
HL
HL
HL
HL
HL
H
HL/HL/HL/HL
HL/HL/HL/HL/HL
HL/HL
H
H
H
H
H
H
H
H
H
-
HL
HL
H
H
H
H
H
H
HL
HL
HL
HL
HL
HL
HL
HL
HL
HL
HL
HL
HL
HL
HL
HL
HL
HL
HL
HL
L
HL/HL/HL/HL
-
H
HLx4
H
H
HL
HL
HL
HL
H/H
H/H
H/H
Lx2
Lx4
Lx2
HL
HL
HL/HL
H/L
-
-
HL
HL
HL
HL
HL
HL
HL
HL
HL
HL
HL
L
HL
HL
HL
HL
L
L
L
L
HL
HL
HL
HL
HL
HL/HL
H
HL
HL
HL
HL
H
HL
HL
HL
HL
HL
HL
HL
HL
HL
HL
HL
HL
HL
HL
HL
HL
HL
HL
HL
HL
HL
HL
HL
H
H
H
H
H
H
H
H
H
H
H
H
H
H
H
H
H
H
H
H
H
-
-
HL
HL/H/H
HL
H
HL
HL
HL
HL
HL
HL
HL
HL
HL
HL
HL
HL
HL
HL
HL
HL
H/H
H
HLx2
HLx1~5
HL/HL/HL
HL/HL
HL/HL
HL/HL
HL/HL
HL
H
HL/H/H
-
HL
Lx5
HL
HL
HL
HL
HL
HL
HL
HL
HL
HL
HL
HL
L
L
L
L
L
L
L
L
L
L
L
HL
HL
HL
H
HL
HL
HL
HL
HL
HL
HL
HL
HL
HL
H
H
H
H
H
H
H
H
H
H
H
HL
HL
HL
HL
H
H
H
H
H
H
H
H
H
H
H
H
HL
HLx2
H
HL
HL
H
-
HL
HL
HL
HL
HL
HL
HL
HL
HL
HLx2
HLx2
HLx2
HLx3
HLx3
HLx3
-
-
-
HL
HL
L
HL
HL
HL/HL/HL
HL
HL
HL
HL
HL
HL/HL
HL
HL
H
H
H
H
H
H
H
H
H
H
HL/H/H
HL
HL
HL
H
H
H
H
H
HL
HL
HL
HL
H
HL
HL
HL
HLx2
HL/HL/HL
HLx2
HL
HLx2
HL/HL
HL
HLx2
Hx3
HL
H
H
H
-
HL
HL
HL
HL
HL
HL
HL
HL/HL/HL
HL
HL
H
H
H
H
H
H
H
H
H
HL
HL
HL
HL
HL
HL
H/H
HL
HL
HLx2
L
L
HL
H
HL
HL
HL
HL
HL
HL
H
H
H
H
H
H
H
H
HL
L
H
H
H
H
HL
HL
HL
HLx2
HL
HL
H
Impossible
HL
H
H
H
HLx2
H
H
HL
HL
HL
HL
H
HL
H
H
H
H
H
H
H
H
H
H
H
H
H
H
H
HL
H
H
H
-
H
';
my $regex = qr/(^(HL\/)+HL$)|(^HLx\d+$)|(^HL$)/mip;
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