Шаблон, который вы пробовали, завершается неудачно для третьего и четвертого неверных случаев, потому что в целом вы соответствуете a-z0-9
, а затем повторяете 1+ раз .
, а затем a-z0-9
, что не учитывает www.
Если вы хотите сохранить ваш шаблон, вы должны убедиться, что он начинается с www.
^www\.(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)+[a-z0-9][a-z0-9-]{0,61}[a-z0-9]$
Regex demo
Вы можете сократить свой шаблон и сделать сравнение немного шире:
^www\.[a-z0-9-]+(?:\.[a-z0-9-]+)*\.com$
Regex demo
Вы всегда можете расширить класс символов, если хотите разрешить сопоставление большего количества символов.