^start of line
1-5one character from 1 (4910) to 5 (5310)
\da digit
-the literal - (4510 / 558 / 2D16)
Non-Capturing Group(?:0?[1-9]|1[012]) 0?optionally matches the 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 - (4510 / 558 / 2D16)
Non-Capturing Group(?:0?[1-9]|[12]\d|3[01]) 0?optionally matches the literal 0 (4810 / 608 / 3016)
1-9one character from 1 (4910) to 9 (5710)
1the literal 1 (4910 / 618 / 3116)
2the literal 2 (5010 / 628 / 3216)
\da digit
3the literal 3 (5110 / 638 / 3316)
0the literal 0 (4810 / 608 / 3016)
1the literal 1 (4910 / 618 / 3116)
\sany whitespace character
Non-Capturing Group(?:[0-1]\d|2[0-3]) 0-1one character from 0 (4810) to 1 (4910)
\da digit
2the literal 2 (5010 / 628 / 3216)
0-3one character from 0 (4810) to 3 (5110)
:the literal : (5810 / 728 / 3A16)
0-5one character from 0 (4810) to 5 (5310)
\da digit
:the literal : (5810 / 728 / 3A16)
0-5one character from 0 (4810) to 5 (5310)
\da digit
$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