Ben sitemde nick kayıtları için şu kuralı kullanıyorum:

Büyük harf, küçük harf, rakam, boşluk, Türkçe karakterler olabilir ve ard arda 1 den fazla boşluk olamaz.

function indexOf( $metin, $aranacak, $buyukkucukharf ){
    return preg_match_all("/".$aranacak."/".($buyukkucukharf == true ? "" : "i"), $metin, $sonuç);
}

function uygunmu( $nick ){
	$türkçeler = array( 'ı', 'ğ', 'ü', 'ş', 'ö', 'ç', 'İ', 'Ğ', 'Ü', 'Ş', 'Ö', 'Ç', ' ' );
	$ingilizceler = array( 'i', 'g', 'u', 's', 'o', 'c', 'i', 'g', 'u', 's', 'o', 'c', '' );
	if( ctype_alnum( str_replace( $türkçeler, $ingilizceler, $nick ) ) ){
		if( !indexOf( $nick, '  ', false ) ){
			return true;
		} else {
			return false;
		}
	}
}