Group 1((?:(?P<aux1>\((?:[^()]++|(?&aux1))*\))|[\w.])++) Non-Capturing Group(?:(?P<aux1>\((?:[^()]++|(?&aux1))*\))|[\w.])++ ++repeats the group contents below at least once:
1st Alternative(?P<aux1>\((?:[^()]++|(?&aux1))*\)) Group aux1(?P<aux1>\((?:[^()]++|(?&aux1))*\)) \(the literal ( (4010 / 508 / 2816)
Non-Capturing Group(?:[^()]++|(?&aux1))* *repeats the group contents below any number of times:
Negated Character Class[^()]++ ++matches at least one character outside the set below:
(the literal ( (4010 / 508 / 2816)
)the literal ) (4110 / 518 / 2916)
(?&aux1)calls group aux1 as a subroutine
\)the literal ) (4110 / 518 / 2916)
\wany word character
.the literal . (4610 / 568 / 2E16)
\s*any whitespace character, repeated any number of times
!the literal ! (3310 / 418 / 2116)
=the literal = (6110 / 758 / 3D16)
=the literal = (6110 / 758 / 3D16)
\s*any whitespace character, repeated any number of times
Group 3((?:(?&aux1)|[\w.])+) Non-Capturing Group(?:(?&aux1)|[\w.])+ +repeats the group contents below at least once:
(?&aux1)calls group aux1 as a subroutine
\wany word character
.the literal . (4610 / 568 / 2E16)
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