それは良い考えではないと思います.
シンプルな正規表現を使用することをお勧めします:
([a-z_][a-z0-9_]{0,30})
次のリンクを確認してください:
https://stackoverflow.com/questions/6949667/what-are-the-real-rules-for-linux-usernames-on-centos-6-and-rhel-6
https://unix.stackexchange.com/questions/157426/what-is-the-regex-to-validate-linux-users
ユーザー名に「@」を使用すると、そのユーザー名を電子メール アドレスのローカル部分として使用できなくなるため、お勧めできません。