Ciao a tutti,
ho un problema con le espressioni regolari. Vorrei controllare che username e password soddisfino determinati criteri: username(lunghezza min 4, max 32, solo lettere e cifre), password(lunghezza min 4, max 32, lettere, cifre, e i caratteri & e £)

il mio codice è:
Codice PHP:
if (eregi("^([a-z0-9]{4,32})",$user)|| eregi("^([a-z0-9@&£]{6,32})"$psw))
{
    if (
eregi("^([a-z0-9]{4,32})",$user))    // username è una stringa di caratteri alfanumerici(no caratteri speciali) di lunghezza min 4
    
{
        echo(
'Username non valido');
    }

    if (
eregi("^([a-z0-9@&£]{4,32})",$psw)) // password è una stringa di caratteri alfanumerici(e i caratteri speciali @,&,£) di lunghezza min 6
    
{
        echo(
'Password non valida');
    }

    echo(
' [url="accedi.php"] Riprova [/url]');

Ma non mi da i risultati sperati...
Cosa sbaglio?