Я нашел эту ссылку (www.regextester.com/103452) для проверки на основе REGEX.
(?=^.{4,253}$)(^((?!-)[a-zA-Z0-9-]{0,62}[a-zA-Z0-9]\.)+[a-zA-Z]{2,63}$)
Но есть одна проблема, Oracle не распознает положительный / отрицательный взгляд.
Первый положительный взгляд (?=^.{4,253}$)
прост, я могу просто проверить длину строки, но для отрицательного взгляда (?!-)
У меня возникли проблемы с определением.