К>Ну, можно просто задекларировать, что все операции повторения ленивые.
К>С жадностью придётся реализовывать ленивость вручную. По сути, ленивость — это такой неявный негативный лукохед: "если можешь сматчить следующий за квантификатором кусок, то всё, стоп!"
Ленивость, negative/positive lookahead, и то что мне нужно — это три разные вещи.
Почему не подойдёт ленивость, расписано тут —
https://learn.javascript.ru/regexp-greedy-and-lazy
вот это то что мне надо (только мне надо без расписывания):
К> если нет произвольного негативного лукохеда, а только строгое неравенство (классы символов — это частный случай), то ещё и его придётся руками расписать:
К>К>/.*?abc/
К>{ . - "a"
К>| "a" , . - "b"
К>| "ab" , . - "c"
К>}
К>"abc"
К>{ . - "a"
К>| "a" , ( . - "b"
К> | "b" , ( . - "c" )
К> )
К>}
К>"abc"
К>
Т.е. прийдётся определить дополнительный синтаксис специально под мою операцию, а потом думать, как её разворачивать "как руками".
Это проблема, потому что
неразрешима задача определения того, является ли КС-грамматика регулярной.