^start of line
\+?optionally matches the literal + (4310 / 538 / 2B16)
Non-Capturing Group(?:[- .]?\d{2})? ?repeats the group contents below at most once:
?matches at most one character from the set below:
-the literal - (4510 / 558 / 2D16)
the literal (3210 / 408 / 2016)
.the literal . (4610 / 568 / 2E16)
\d{2}a digit, repeated exactly 2 times
?matches at most one character from the set below:
-the literal - (4510 / 558 / 2D16)
the literal (3210 / 408 / 2016)
.the literal . (4610 / 568 / 2E16)
\d{4,5}a digit, repeated between 4 and 5 times
?matches at most one character from the set below:
-the literal - (4510 / 558 / 2D16)
the literal (3210 / 408 / 2016)
.the literal . (4610 / 568 / 2E16)
\d{3}a digit, repeated exactly 3 times
?matches at most one character from the set below:
-the literal - (4510 / 558 / 2D16)
the literal (3210 / 408 / 2016)
.the literal . (4610 / 568 / 2E16)
\d{3}a digit, repeated exactly 3 times
$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