^start of string
Group 1([1-9]|([012][0-9])|(3[01])) 1-9one character from 1 (4910) to 9 (5710)
2nd Alternative([012][0-9]) 0the literal 0 (4810 / 608 / 3016)
1the literal 1 (4910 / 618 / 3116)
2the literal 2 (5010 / 628 / 3216)
0-9one character from 0 (4810) to 9 (5710)
3the literal 3 (5110 / 638 / 3316)
0the literal 0 (4810 / 608 / 3016)
1the literal 1 (4910 / 618 / 3116)
\/the literal / (4710 / 578 / 2F16)
Group 4([0]{0,1}[1-9]|1[012]) 1st Alternative[0]{0,1}[1-9] {0,1}matches at most one character from the set below:
0the literal 0 (4810 / 608 / 3016)
1-9one character from 1 (4910) to 9 (5710)
1the literal 1 (4910 / 618 / 3116)
0the literal 0 (4810 / 608 / 3016)
1the literal 1 (4910 / 618 / 3116)
2the literal 2 (5010 / 628 / 3216)
\/the literal / (4710 / 578 / 2F16)
\da digit
\da digit
\da digit
\da digit
the literal (3210 / 408 / 2016)
Character Class[012]{0,1} {0,1}matches at most one character from the set below:
0the literal 0 (4810 / 608 / 3016)
1the literal 1 (4910 / 618 / 3116)
2the literal 2 (5010 / 628 / 3216)
0-9one character from 0 (4810) to 9 (5710)
:the literal : (5810 / 728 / 3A16)
0-6one character from 0 (4810) to 6 (5410)
0-9one character from 0 (4810) to 9 (5710)
$end of string, or before its final line terminator
g modifier: global. Finds all matches instead of stopping after the first