Negative Lookbehind(?<![abc]) athe literal a (9710 / 1418 / 6116) (case sensitive)
bthe literal b (9810 / 1428 / 6216) (case sensitive)
cthe literal c (9910 / 1438 / 6316) (case sensitive)
Comment: No "a", "b", "c" allowed immediately on the left
Positive Lookahead(?=(?:[bc]*a){3}) Non-Capturing Group(?:[bc]*a){3} {3}repeats the group contents below exactly 3 times:
*matches any number of characters from the set below:
bthe literal b (9810 / 1428 / 6216) (case sensitive)
cthe literal c (9910 / 1438 / 6316) (case sensitive)
athe literal a (9710 / 1418 / 6116) (case sensitive)
Comment: At least three "a"s
Positive Lookahead(?=(?:[ac]*b){3}) Non-Capturing Group(?:[ac]*b){3} {3}repeats the group contents below exactly 3 times:
*matches any number of characters from the set below:
athe literal a (9710 / 1418 / 6116) (case sensitive)
cthe literal c (9910 / 1438 / 6316) (case sensitive)
bthe literal b (9810 / 1428 / 6216) (case sensitive)
Comment: At least three "b"s
Non-Capturing Group(?: # Either
(?=[ab]*(?![abc])) # only "a" or "b"s allowed until a location not followed with "a", "b" or "c"
| # or
(?=(?:[ab]*c){3}) # At least three "c"s
) 1st Alternative # Either
(?=[ab]*(?![abc])) # only "a" or "b"s allowed until a location not followed with "a", "b" or "c"
Comment: Either
Positive Lookahead(?=[ab]*(?![abc])) *matches any number of characters from the set below:
athe literal a (9710 / 1418 / 6116) (case sensitive)
bthe literal b (9810 / 1428 / 6216) (case sensitive)
Negative Lookahead(?![abc]) athe literal a (9710 / 1418 / 6116) (case sensitive)
bthe literal b (9810 / 1428 / 6216) (case sensitive)
cthe literal c (9910 / 1438 / 6316) (case sensitive)
Comment: only "a" or "b"s allowed until a location not followed with "a", "b" or "c"
2nd Alternative # or
(?=(?:[ab]*c){3}) # At least three "c"s
Comment: or
Positive Lookahead(?=(?:[ab]*c){3}) Non-Capturing Group(?:[ab]*c){3} {3}repeats the group contents below exactly 3 times:
*matches any number of characters from the set below:
athe literal a (9710 / 1418 / 6116) (case sensitive)
bthe literal b (9810 / 1428 / 6216) (case sensitive)
cthe literal c (9910 / 1438 / 6316) (case sensitive)
Comment: At least three "c"s
+matches at least one character from the set below:
athe literal a (9710 / 1418 / 6116) (case sensitive)
bthe literal b (9810 / 1428 / 6216) (case sensitive)
cthe literal c (9910 / 1438 / 6316) (case sensitive)
Comment: Match and consume one or more "a", "b" or "c" chars
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, including inside character classes