They remember the last single character that is required for a match, and fail early if it is not present in the string.) If the pattern is changed to ((? \D+) _BAR_ \d + )*[!?] sequences of non-digits cannot be broken, and failure happens quickly.
Si le masque utilisé est ((? \D+) _BAR_ \d + )*[!?] les séquences de chiffres ne peuvent pas être trouvées, et l 'échec intervient rapidement.