regex - извлекать доменное имя и TLD

Я пытаюсь извлечь доменное имя и TLD (если он существует) из строки.

Для "testing.co.uk" я хочу иметь массив со значениями: ("testing", "co.uk")

Для "-testing.c" я хочу иметь массив со значением: ("testing")

Для "test-ing.co.uk.com" я хочу иметь массив со значениями ("test-ing", "co.uk")

Правила просты:

первый и последний символ доменного имени не может быть "-"В TLD должно быть не менее двух символовЧасть TLD может иметь одну точку "." но только если за ним следуют как минимум две буквы

У меня есть это:

(\w[-\w]*\w) - Первая часть, которая извлекает доменное имя (Рабочая)\.(\w{2,}(\.?\w{2,})?) - получить ДВУ (не работает)

Ответы на вопрос(2)

Ваш ответ на вопрос