^start of line
Positive Lookahead(?=-.*D$|\d.*C$) -the literal - (4510 / 558 / 2D16)
.*any character (except for line terminators), repeated any number of times
Dthe literal D (6810 / 1048 / 4416) (case sensitive)
$end of line
\da digit
.*any character (except for line terminators), repeated any number of times
Cthe literal C (6710 / 1038 / 4316) (case sensitive)
$end of line
-?optionally matches the literal - (4510 / 558 / 2D16)
Positive Lookahead(?=(?:\d,?){1,13}\.) Non-Capturing Group(?:\d,?){1,13} {1,13}repeats the group contents below between 1 and 13 times:
\da digit
,?optionally matches the literal , (4410 / 548 / 2C16)
\.the literal . (4610 / 568 / 2E16)
Non-Capturing Group(?:0|[1-9]\d{0,2}(?:,\d{3})*) 0the literal 0 (4810 / 608 / 3016)
2nd Alternative[1-9]\d{0,2}(?:,\d{3})* 1-9one character from 1 (4910) to 9 (5710)
\d{0,2}a digit, repeated between 0 and 2 times
Non-Capturing Group(?:,\d{3})* *repeats the group contents below any number of times:
,the literal , (4410 / 548 / 2C16)
\d{3}a digit, repeated exactly 3 times
\.the literal . (4610 / 568 / 2E16)
\d{2}a digit, repeated exactly 2 times
the literal (3210 / 408 / 2016)
Dthe literal D (6810 / 1048 / 4416) (case sensitive)
Cthe literal C (6710 / 1038 / 4316) (case sensitive)
$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