Scusate se mi intrometto!

io vorrei che una stringa contenga solo alcuni caratteri:

č corretto cosi?
Codice PHP:
if(eregi("[^a-z0-9]",$str)) { // cioč vale solo se contengo caratteri alfanumerici??
SI
}else {
NO

ho un dubbio, perchč mi funziona con il simbolo "^" ? Non dovrebbe negare la classe?