\d{1,2}a Unicode decimal digit, repeated between 1 and 2 times
?optionally matches the literal (3210 / 408 / 2016)
Non-Capturing Group(?:(h|H|:|am|pm|AM|PM)) Group 2(h|H|:|am|pm|AM|PM) hthe literal h (10410 / 1508 / 6816) (case sensitive)
Hthe literal H (7210 / 1108 / 4816) (case sensitive)
:the literal : (5810 / 728 / 3A16)
amthe literal text am (case sensitive) pmthe literal text pm (case sensitive) AMthe literal text AM (case sensitive) PMthe literal text PM (case sensitive) ?optionally matches the literal (3210 / 408 / 2016)
?repeats the group contents below at most once:
\d{2}a Unicode decimal digit, repeated exactly 2 times
2nd Alternative — matches an empty string
Non-Capturing Group(?:\:(\d{2}|))? ?repeats the group contents below at most once:
\:the literal : (5810 / 728 / 3A16)
\d{2}a Unicode decimal digit, repeated exactly 2 times
2nd Alternative — matches an empty string
?optionally matches the literal (3210 / 408 / 2016)
Group 5((h|H|am|pm|AM|PM|Z|UTC))? ?repeats the group contents below at most once:
Group 6(h|H|am|pm|AM|PM|Z|UTC) hthe literal h (10410 / 1508 / 6816) (case sensitive)
Hthe literal H (7210 / 1108 / 4816) (case sensitive)
amthe literal text am (case sensitive) pmthe literal text pm (case sensitive) AMthe literal text AM (case sensitive) PMthe literal text PM (case sensitive) Zthe literal Z (9010 / 1328 / 5A16) (case sensitive)
UTCthe literal text UTC (case sensitive) ?optionally matches the literal (3210 / 408 / 2016)
Group 7((?:\+|\-)\d{1,2})? 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