mmmm... ci sono un po' troppi errori pertanto ti riscrivo il codice a modo mio:

codice:
<?php
if ( ! empty( $_POST ) )
{
 $nome=$_POST['nome'];
 $cognome=$_POST['cognome'];
 $nick=$_POST['nick'];
 $password=$_POST['password'];
 $cpassword=$_POST['cpassword'];
 $email=$_POST['email'];
 $errore='';
 $sep='|';
 $sep2='&';
 $control='true';
 
  
 
 function ctrl_nome($nome)
  {
    if(preg_match('/[\^<,\"@\/\{\}\(\)\*\$%\?=>:\|;#]+/i', $nome)){//SE IL NOME CONTIENE CARATTERI NON ADATTI
      return 0;
    }else{return 1;}
  }                 
 function ctrl_psw($password,$cpassword)
  {
     if($password!=$cpassword){
     return 0;
   }else{return 1;}
    
  }
 function ctrl_email($email)
  {
     if(!preg_match( '/^[\w\.\-]+@\w+[\w\.\-]*?\.\w{1,4}$/', $email)){return 0;}else{return 1;}
        
  }
  
 if(!ctrl_nome($nome))
   { 
     $errore=$errore.'Il nome non puo contenere numeri.';
    }  
 if(!ctrl_psw($password,$cpassword))
    {
    $errore=$errore.'Le password non coincidono.';
     }
 if (!ctrl_email($email)) { 
    $errore=$errore.' Email non corretta.'; 
}
    
 if($errore=="")    
   {
    $rigo=$nome.$sep.$cognome.$sep.$nick.$sep.$password.$sep.$email.$sep2 ;
    $file=fopen("utenti.txt",'a');
    fwrite($file,$rigo);
    fclose($file);
echo "Registrazione Avvenuta";
   }
  else{
   echo $errore; 
}
}
?>



<form method="POST" action="<?php echo $_SERVER['PHP_SELF']; ?>">
 Nome  <input type="text" name="nome" > 

 Cognome <input type="text" name="cognome" >  

 Nome Utente <input type="text" name="nick"> 

 Password  <input type="password" name="password" > 

 Conferma Password  <input type="password" name="cpassword" >

  E-mail<input type="email" name="email" >  

 Registrati <input type="submit" name="registrati" value="submit">  

</form>
Dimmi se ti funziona