On 05/01/2016 05:23 AM, Alice Wonder wrote: > It's the set I'm after. Or its complement. I don't care. Not whether > my code should use set A or its complement. Then you're after RFC 5321 section 4.1.2 and possibly 6531 section 3.3 (but probably not for a few years yet). You should also consider shadow-utils' chkname.c, where valid local user names are restricted to "[a-z_][a-z0-9_-]*[$]" of less than USER_NAME_MAX_LENGTH characters (though not with a regex). https://tools.ietf.org/html/rfc5321 https://tools.ietf.org/html/rfc6531 http://anonscm.debian.org/cgit/pkg-shadow/shadow.git/tree/libmisc/chkname.c