Ваш шаблон соответствует этим URL-адресам, потому что после сопоставления .uk
вы используете .*(?!isch|shop)
, который сначала будет соответствовать до конца строки из-за .*
Затем утверждает, что то, что справа, не являетсяisch или shop, который будет иметь значение true, поскольку все символы уже совпадают.
Один из вариантов может заключаться в использовании отрицательного предвкушения (?!.*=(?:isch|shop)$)
после сопоставления .uk/
, чтобы проверить, не заканчивается ли URL на = isch или =ходите по магазинам, используя .*
в отрицательном прогнозе, а затем $
для подтверждения конца строки.
https://www\.google\.co\.uk/(?!.*=(?:isch|shop)$).*$
Regex demo