^start of line
Group commodity(?'commodity'02) _the literal _ (9510 / 1378 / 5F16)
Group market(?'market'\w{3,}) \w{3,}any word character, repeated at least 3 times
_the literal _ (9510 / 1378 / 5F16)
Group tenortype(?'tenortype'M) Mthe literal M (7710 / 1158 / 4D16) (case sensitive)
Group offset(?'offset'[1-9][0-9]?)? ?repeats the group contents below at most once:
1-9one character from 1 (4910) to 9 (5710)
?matches at most one character from the set below:
0-9one character from 0 (4810) to 9 (5710)
_the literal _ (9510 / 1378 / 5F16)
Group derivative(?'derivative'PHY|FUT) PHYthe literal text PHY (case sensitive) FUTthe literal text FUT (case sensitive) the literal (3210 / 408 / 2016)
Mthe literal M (7710 / 1158 / 4D16) (case sensitive)
-the literal - (4510 / 558 / 2D16)
\d{4}a digit, repeated exactly 4 times
-the literal - (4510 / 558 / 2D16)
\ban ASCII word boundary
Group month(?'month'0[1-9]|1[0-2]) 0the literal 0 (4810 / 608 / 3016)
1-9one character from 1 (4910) to 9 (5710)
1the literal 1 (4910 / 618 / 3116)
0-2one character from 0 (4810) to 2 (5010)
\ban ASCII word boundary
$end of line
g modifier: global. Finds all matches instead of stopping after the first
m modifier: multiline. Causes ^ and $ to match the start and end of each line, not only the start and end of the string