^start of line
Group 1([^-\n]*[^\s-][^-\n]*?) Negated Character Class[^-\n]* *matches any number of characters outside the set below:
-the literal - (4510 / 558 / 2D16)
\na line-feed (newline) character (ASCII 10)
Negated Character Class[^\s-] \sany whitespace character
-the literal - (4510 / 558 / 2D16)
Negated Character Class[^-\n]*? *?matches any number of characters outside the set below:
-the literal - (4510 / 558 / 2D16)
\na line-feed (newline) character (ASCII 10)
\s*any whitespace character, repeated any number of times
-the literal - (4510 / 558 / 2D16)
\s*any whitespace character, repeated any number of times
Group 2([^-\n]*[^\s-][^-\n]*) Negated Character Class[^-\n]* *matches any number of characters outside the set below:
-the literal - (4510 / 558 / 2D16)
\na line-feed (newline) character (ASCII 10)
Negated Character Class[^\s-] \sany whitespace character
-the literal - (4510 / 558 / 2D16)
Negated Character Class[^-\n]* *matches any number of characters outside the set below:
-the literal - (4510 / 558 / 2D16)
\na line-feed (newline) character (ASCII 10)
$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