Leggendo qua e la e eseguendo circa un miliardo di tentativi sono arrivato a questo che è un buon risultato:
if (!preg_match("/^([a-zA-Z])+([a-zA-Zàáèéìíòóùú ]|\\\')+([a-zA-Z])$/",$s)){
che in caso di true faccio uscire un messaggio di echo di errore se la stringa inizia per ' e finisce per ' però ho il problema che se a metà della stringa ad esempio scrivo d'''''antonio mi da che è valida lo stesso, come faccio a mettere un limite di 1 ' solo ?????
Grazie.