Tu expresión regular está bien, al ejecutar tu script contra el array $names, puedo ver que detecta los string "18912462" y "deerme.org" (que no cumplen con el patrón), a si que el problema va por otro lado.
Código PHP:
<?php
$names = array("18912462","deerme.org","Juan Carlos","Jorge Gonzales");
foreach( $names as $name )
{
if ( !preg_match('/^[a-zA-ZáéíóúàèìòùÁÉÍÓÚÀÈÌÒÙÑñ\s]{3,100}+$/', $name) )
{
echo $name." no cumple con el patrón\n";
}
}
Saludos