I'm doing a preg_match on a posted field, that contains a username. The username should be forced to contain only letters and spaces. Problem comes in that the serve I'm using has no PECL UTF-8 support (\u, \l regex modifiers) nor the mb_string functions enabled. Which kind of sucks.

Now, I wouldn't mind having users with greek, hebrew, arabic or heh, maybe even tegwar (i'm not sure elvish writing systems are part of the utf-8 standard thoguh :P) in usernames, but i definitely hate usernames with various symbols, thrown out to look "cute" or 1337.

So, since no UTF support is available, I've made my regex to simply remove spacing characters and a few symbols. ([^\S\._\-!@#\$]+?) (you get the idea). Problem is.. how valid will something like this be (wouldn't it wipe out one of the two characters in UTF for example, in some cases) and how many UTF-8 non-letter characters will have to be wiped out? :/

thanks!