Количественно определенная группа, например, [ A B ]+
, фактически все oop, неоднократно пытается соответствовать A
, и, если совпадает, пытается сопоставить B
.
Если это не бесконечно l oop - в этом случае ваша программа будет зависать - она в конечном итоге будет соответствовать N раз и затем продолжится. Если A
всегда совпадает, но ваша программа не зависает, то это должно означать, что B
в конечном итоге потерпел неудачу. Если это так, то A
гарантированно совпадет еще раз, чем B
.
В вашем коде A
равно <.succ>
, что уменьшает до <?>
, что всегда совпадает. Есть 4 попытки и, таким образом, A
совпадений 4 раз. В отличие от этого B
, то есть <digit>+
, терпит неудачу с четвертой попытки, поэтому соответствует только 3 раз.