# length checks com.ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo.foo com.example.ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo com.middle.middle.middle.middle.middle.middle.middle.middle.middle.middle.middle.middle.middle.middle.middle.middle.middle.middle.middle.middle.middle.middle.middle.middle.middle.middle.middle.middle.middle.middle.middle.middle.middle.middle.middle.middle.middle.middle.middle.middle.foo # valid examples com.example.fooBar net.users.bob.ping a.b.c m.xn--masekowski-d0b.pl one.two.three one.two.three.four-and.FiVe one.2.three a-0.b-1.c a0.b1.cc cn.8.lex.stuff test.12345.record a01.thing.record a.0.c xn--fiqs8s.xn--fiqa61au8b7zsevnm8ak20mc4a87e.record.two # allows onion (Tor) NSIDs onion.expyuzz4wqqyqhjn.spec.getThing onion.g2zyxa5ihm7nsggfxnu52rck2vv4rvmdlkiu3zzui5du4xyclen53wid.lex.deleteThing # allows starting-with-numeric segments (same as domains) org.4chan.lex.getThing cn.8.lex.stuff onion.2gzyxa5ihm7nsggfxnu52rck2vv4rvmdlkiu3zzui5du4xyclen53wid.lex.deleteThing