Una migliore potrebbe essere
Codice PHP:
$pattern '/([12]+[0-9]{3})[-\.\/: ]{1}([01]+[0-9]{1})[-\.\/: ]{1}([0123]+[0-9]{1})/'
Ma non saresti ancora al sicuro, così sai che l'anno dovrà per forza cominciare con 1 o 2, il mese con 0 o 1, il giorno con 0 o 1 o 2 o 3, ma non puoi essere sicuro che sia una data valida perché non sa che 2014-02-31 non esiste.

La cosa migliore sarebbe prendere le 2 date e farle verificare alla funzione checkdate().