^start of line
Negative Lookahead(?!\b(0)\1+\b) \ban ASCII word boundary
0the literal 0 (4810 / 608 / 3016)
\1+the text saved by group 1, repeated at least once
\ban ASCII word boundary
Group 2(\+?\d{1,3}[. -]?)? ?repeats the group contents below at most once:
\+?optionally matches the literal + (4310 / 538 / 2B16)
\d{1,3}a digit, repeated between 1 and 3 times
?matches at most one character from the set below:
.the literal . (4610 / 568 / 2E16)
the literal (3210 / 408 / 2016)
-the literal - (4510 / 558 / 2D16)
\(?optionally matches the literal ( (4010 / 508 / 2816)
\d{3}a digit, repeated exactly 3 times
\)?optionally matches the literal ) (4110 / 518 / 2916)
?matches at most one character from the set below:
.the literal . (4610 / 568 / 2E16)
the literal (3210 / 408 / 2016)
-the literal - (4510 / 558 / 2D16)
\d{3}a digit, repeated exactly 3 times
\3the text saved by group 3
\d{4}a digit, repeated exactly 4 times
$end of line
m modifier: multiline. Causes ^ and $ to match the start and end of each line, not only the start and end of the string
g modifier: global. Finds all matches instead of stopping after the first