Модификатор nongreedy регулирует предпочтение движка регулярных выражений. Обычно при жадном сопоставлении двигатель предпочитает самый длинный из возможных совпадений. При скупом (нон-жадном) совпадении совпадение, определяемое модификатором скупого, предпочтет самое короткое из возможных совпадений.
Обратите внимание, что двигатель все равно сделает все возможное, чтобы найти совпадение. Если более длинное выражение позволит двигателю возвращать совпадение, а более короткое - не будет, то двигатель выберет такое, которое позволит ему вернуть совпадение.
Возможно, полезно подумать об этом с точки зрения возврата. При жадном совпадении механизм запускается с гипотезой о том, что максимальное повторение будет успешным, затем, если это не удастся, вернитесь назад и попробуйте последовательно более короткие совпадения, пока не найдет совпадение или пространство поиска не будет исчерпано. При скупом сопоставлении предпочтительной гипотезой является самое короткое из возможных совпадений, и при обратном отслеживании будет пытаться последовательно увеличить количество повторений.
Вероятно, ваш (неясный) пример сбивает с толку то, что чередование задает явный порядок возврата. Движок будет исследовать соответствие, начиная с первого шаблона среди альтернатив, и продолжит пробовать другие альтернативы, только если ему не хватит места для поиска, прежде чем найти соответствие.