Ваши регулярные выражения не привязаны.Первое условие действительно говорит: «есть ли в строке "corecaptured"
позиция, за которой не следует текст corecaptured
?».
Ответ на этот вопрос - «да», поскольку по смещению 1 следующая строка"orecaptured"
, который не начинается с c
.Вот почему соответствие регулярному выражению возвращает true.
Вы, вероятно, имели в виду /^(?!corecaptured)/
, который проверяет, не начинается ли целевая строка с corecaptured
.
Что касается вашей ссылки на regex101,который содержит совершенно другое регулярное выражение: a(?!b)c
эквивалентно ac
, потому что (?!b)c
означает «соответствует c
в позиции, где следующий символ не является b
» (или, другими словами, «соответствует * 1019»* это также не b
").
Если вы измените его на то, что в вашем коде , вы увидите, что результатом будет одно успешное совпадение (длиной 0)) по смещению 1:
corecaptured
^