At first I think that in square brackets there is an understanding of misses. With [com]{3} you create a character class and match 3 characters from this class, this means that it will match com (I think as you please), but also ccc , cmc , etc.
Similarly for [test]+? , this corresponds to at least 1 character from t , e and s
When you speak:
check only characters in username, not numbers and special characters
I think you mean only letters? Or just the letters ASCII?
What do you mean probably
(\ w+@test \.com)
\w is a character class that contains A-Za-z0-9 and _ (and maybe everything that is a letter in Unicode, I'm not sure). If you need only ASCII characters, create your own character class with [A-Za-z] if you want any letter to use the Unicode property \p{L}
Something like that
@"^(\p{L} +@test \.com)$"
source share