Te serviría algo como:
Código
/[0-9a-zA-Z](?:[0-9a-zA-Z\.\-]{0,62}[0-9a-zA-Z])?/
Claro que ahí permitiría varios puntos seguidos.
Un validador que mida la cadena exacta sin duda es algo difícil. Tu método, validando luego con otro lenguaje, pienso que es perfecto para no complicarse la vida xD