# length checks
com.oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo.foo
com.example.oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
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.middle.middle.middle.middle.middle.middle.middle.middle.middle.middle.foo

# invalid examples
com.example.foo.*
com.example.foo.blah*
com.example.foo.*blah
com.exa💩ple.thing
a-0.b-1.c-3
a-0.b-1.c-o
1.0.0.127.record
0two.example.foo
example.com
com.example
a.
.one.two.three
one.two.three 
one.two..three
one .two.three
 one.two.three
com.exa💩ple.thing
com.atproto.feed.p@st
com.atproto.feed.p_st
com.atproto.feed.p*st
com.atproto.feed.po#t
com.atproto.feed.p!ot
com.example-.foo
com.example.fooBar.2
