bueno estás bastante lejos de la respuesta.. todo mal :'D
Código PHP:
if (preg_match('/[^A-Za-z áéíóúÁÉÍÓÚñÑçÇ-]/', $_POST['name']) == 1) {
PUNTO 1
$_POST['name']) == 1 .. es una condición, como resultado dará un boolean, y en la documentación de PHP dice que el segundo parámetro debe ser un String, el cual es el que se evaluará la expresión regular.
PUNTO 2
En la expresión regular estás omitiendo el caracter cuantificador.. por lo cual esa expresión sólo sirve si se trata de un solo caracter. (
http://www.php.net/manual/en/regexp.reference.meta.php)
PUNTO 3
para el correcto funcionamiento de los tildes dentro de la expresión debes asegurarte de guardar el documento con la codificación adecuada o en su defecto utilizar expresiones unicode (
http://php.net/manual/en/regexp.reference.unicode.php)
PUNTO 4
para el tema de las expresiones regulares te recomiendo bastante utilices un programa llamado REGEXBUDDY, con el puedes testear fácilmente tus regex.
saludos.