Как обсуждалось с вами, нужно было позаботиться о нескольких вещах.Упоминая некоторые из них ниже,
- Группе уровня домена требовалось
*
, поскольку вы хотели разрешить ее ноль или более раз. - Чтобы ее запретить, необходимо было заключить ее в границу словачастичное совпадение в тексте.
.*
в конце регулярного выражения необходимо было заменить на \S*
, чтобы избежать совпадения с любым пробелом в URL
С этими изменениями вашобновленное и работающее регулярное выражение становится таким,
\b(?<protocol>\w+s?:\/\/)?(?<subdomain>\w+\.)*(?<domain>(?!mysite)(\w+))(?<tls>\.\w{2,4})(?<querystring>\/\S*)?\b
Демо