-the literal - (4510 / 558 / 2D16)
Group 1(START(?=(?:_(?:(?!-(?:END|START))[^_])*){3,4}-END)(?:(?!-(?:END|START)).)*) STARTthe literal text START (case sensitive) Positive Lookahead(?=(?:_(?:(?!-(?:END|START))[^_])*){3,4}-END) Non-Capturing Group(?:_(?:(?!-(?:END|START))[^_])*){3,4} {3,4}repeats the group contents below between 3 and 4 times:
_the literal _ (9510 / 1378 / 5F16)
Non-Capturing Group(?:(?!-(?:END|START))[^_])* *repeats the group contents below any number of times:
Negative Lookahead(?!-(?:END|START)) -the literal - (4510 / 558 / 2D16)
Non-Capturing Group(?:END|START) ENDthe literal text END (case sensitive) STARTthe literal text START (case sensitive) Negated Character Class[^_] _the literal _ (9510 / 1378 / 5F16)
-ENDthe literal text -END (case sensitive) Non-Capturing Group(?:(?!-(?:END|START)).)* *repeats the group contents below any number of times:
Negative Lookahead(?!-(?:END|START)) -the literal - (4510 / 558 / 2D16)
Non-Capturing Group(?:END|START) ENDthe literal text END (case sensitive) STARTthe literal text START (case sensitive) .any character (except for line terminators)
_+the literal _ (9510 / 1378 / 5F16) , repeated at least once
\d+a digit, repeated at least once
Positive Lookahead(?=-END) -ENDthe literal text -END (case sensitive) 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