Отправка другого ответа: ^(((?!PI).)*)$|^.*(PI).+$|^.+(PI).*$
Я разбил его на 3 случая, используя ИЛИ |
:
1) Соответствует строке, которая вообще не содержит PI.
^(((?!PI).)*)$
2) Соответствует строке, в которой есть PI, но за ней стоит хотя бы один символ и, возможно, любые символы впереди.
^.*(PI).+$
3) Соответствует строкев нем есть PI, но впереди есть хотя бы один символ и, возможно, любые символы позади него.
^.+(PI).*$
Вот с тестовыми примерами: https://regex101.com/r/7rzqpe/3
Пожалуйста, прокомментируйте, если вы нашли случай с отсутствующим краем.