I risultati non li ho scritti a mano: sono copia-incollati dal risultato. Ciò significa che il programmino che ti ho spedito (con la tua espressione regolare) funziona correttamente: il problema è un altro.

Per esempio, richiami la funzione con $client->NumericDateIsOk(): $client è un oggetto valido e NumericDateIsOk() è un suo metodo? Hai solo una funzione che si chiama NumericDateIsOk()?

Oppure esegui un die("--$date--") prima della chiamata di NumericDateIsOk() e controlla se effettivamente $date è quello che ti aspetti ed è senza spazi.

Oppure esegui un die("eseguito") al posto dell'echo "Controllo passato" per vedere se hai problemi con l'output.

Le cause sono molteplici: l'unica cosa certa è che l'espressione regolare funziona.

PS: ho dovuto doppioslashare le "d" (\\d) nella scrittura del codice perché altrimenti il forum mi togliava una slash.