Le lettere accentate di solito vengono ammesse per username e password, e di solito non c'è da prendere particolari precauzioni, al limite fai un htmlentities() prima di aggiungere gli escape per evitare problemi di charset del db (ovviamente dovrai farlo sia alla registrazione che al login).

Riguardo alla regexp, esiste il modo di farle accettare anche i simboli. In questa guida si spiega anche quello:

http://php.html.it/articoli/leggi/85...ioni-regolari/

Ciao