Ciao,
ho un problema sulla sintassi delle espressioni regolari.

ho letto una sfilza di testi che trattano questo argomento, ma non ho ancora capito bene come funzionano.

ho una classe registrazione.php, ovviamente serve per inviare verso un db i dati di un'utente per la registrazione.

dovrei svolgere dei controlli sui campi è leggendo qua e la ho capito che devo usare le espressioni regolari.

ho creato quindi un'altra classe controlli.php dove ho inserito le n funzioni che mi restituiranno vero o false in registrazione.php

non essendo una cima in php ma dovendoci lavorare vi chiedo aiuto

Questo è il frammento di registrazone.php che richiama le funzioni
codice:
<?php
include ("utility\controlli.php");
$prova = new controlli();
echo '<form action="registrazione.php" method="post">
         <table id="registra" name="registra">
           <thead>
             <tr>
                 <td>
                    Registrati
                 </td>
             </tr>
            <thead>
      ';

$name = $_POST['nome'] = isset($_POST['nome']) ? $_POST['nome'] : '';
$user = $_POST['user'] = isset($_POST['user']) ? $_POST['user'] : '';
$mail = $_POST['mail'] = isset($_POST['mail']) ? $_POST['mail'] : '';
$pass = $_POST['password'] = isset($_POST['password']) ? $_POST['password'] : '';
$repass = $_POST['repassword'] = isset($_POST['repassword']) ? $_POST['repassword'] : '';

echo '<tr>
         <td>NOME :</td>
         <td><input name="nome" id="nome" type="text" value=""/></td>';
$verifica = $prova->cartteri($name);
if ($verifica == true){
    echo "<td>passato</td>";
}else{
    echo "<td>errore</td>";
}

      echo '</tr>';
Mentre questa è la classe controlli.php
codice:
class controlli {

    function cartteri($str){
//ho contato i caratteri della stringa passata
    $conta = strlen($str);
//se ce qualcosa ...
    if ($conta != ""){
//... divido la stringa in singoli caratteri che metto in un array
        $taglio = str_split($str, 1);
//ciclo per tutta la lunghezza della stringa
        for($i = 0 ; $i < $conta ; $i++){
/*se nell'indice non ci sono lettere ritorna false se presenti le lettere e non numeri restituisce true*/
               if (ereg("\^[^a-zA-Z]\$", $taglio[$i])){ 
                return false;
            }else{
                return true;
            }
        }
    }else{
    return false;
    }
     }
però non cicla un bel nulla , si inchioda quando entra nell'if segnato in rosso.
suppongo che sia il pattern sbagliato , ma leggendo i vari manuali non sono riuscito a farlo funzionare , qualcuno mi può gentilmente dare una mano a capire come funziona?
grazie ancora ciao