^start of line
Comment: Assert begin of line
Positive Lookahead(?= # First zero-with lookahead
( # Capturing group 1
a # Match a
(?1)? # Recurse group 1 optionally
b # Match b
) # End of group 1
c+ # Match c one or more times
) Comment: First zero-with lookahead
Group 1( # Capturing group 1
a # Match a
(?1)? # Recurse group 1 optionally
b # Match b
) Comment: Capturing group 1
a the literal text a (case sensitive)
Comment: Match a
(?1)?optionally calls group 1 as a subroutine
Comment: Recurse group 1 optionally
b the literal text b (case sensitive)
Comment: Match b
Comment: End of group 1
c+the literal c (9910 / 1438 / 6316) (case sensitive), repeated at least once
Comment: Match c one or more times
Comment: End of the first lookahead
Positive Lookahead(?= # Second zero-with lookahead
a+ # Match a one or more times
( # Capturing group 2
b # Match b
(?2)? # Recurse group 2 optionally
c # Match c
) # End of group 2
) Comment: Second zero-with lookahead
a+the literal a (9710 / 1418 / 6116) (case sensitive), repeated at least once
Comment: Match a one or more times
Group 2( # Capturing group 2
b # Match b
(?2)? # Recurse group 2 optionally
c # Match c
) Comment: Capturing group 2
b the literal text b (case sensitive)
Comment: Match b
(?2)?optionally calls group 2 as a subroutine
Comment: Recurse group 2 optionally
c the literal text c (case sensitive)
Comment: Match c
Comment: End of group 2
Comment: End of the second lookahead
a+the literal a (9710 / 1418 / 6116) (case sensitive), repeated at least once
b+the literal b (9810 / 1428 / 6216) (case sensitive), repeated at least once
c+the literal c (9910 / 1438 / 6316) (case sensitive), repeated at least once
Comment: Match each of a,b and c one or more times
$end of line
Comment: Assert 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
x modifier: extended. Ignores unescaped whitespace and comments outside character classes