Я не могу вспомнить ситуацию, в которой я хотел бы использовать ?? в регулярном выражении, но, возможно, я не думаю достаточно хорошо.
??
Возможно, список разделен разделителем, и вы не хотите совпадать с любым завершающим разделителем.
^((?:[^,]+,??)+),?$
Это будет захватывать "a,b,c" из "a,b,c,", где в качестве варианта без ленивства будет включена запятая в группе захвата.
"a,b,c"
"a,b,c,"
Я бы использовал его как оптимизацию, если дополнительная часть обычно отсутствует.
Foo(PartUsuallyPresent)?Bar Foo(PartUsuallyAbsent)??Bar
Но мне определенно не хватает реального примера.