regex_match en CodeIgniter form_validation genera: Mensaje: preg_match (): No se ha encontrado el delimitador final '/'

He estado buscando en otras publicaciones similares y el problema parecía ser una barra sin escaparse. Sin embargo los estoy escapando.

Así es como debe verse la cuerda:

23/12/2012

Y así es como estoy declarando la regla de validación:

regex_match[/^(0[1-9]|[12][0-9]|3[01])\/(0[1-9]|1[012])\/(19|20)[0-9]{2}$/]

El delimitador de finalización está allí, y las dos barras intermedias para la fecha se están escapando con una barra invertida. También he intentado esto, que es ligeramente diferente, pero me sale el mismo error:

regex_match[/^(0[1-9]|[12][0-9]|3[01])\/(0[1-9]|1[012])\/(19|20)\d\d$/]

¿Dónde está el error?

EDITAR:

Siguiendo tu consejo, he intentado usar una función de devolución de llamada. Esta es la declaración, que se encuentra dentro de la clase de controlador en la que se está ejecutando la validación del formulario:

function mach_date($date) {
   /* DEBUG */ echo 'Here I am!'; exit; // execution should stop here displaying the echo
   return (bool)preg_match('/^(0[1-9]|[12][0-9]|3[01])\/(0[1-9]|1[012])\/(19|20)\d\d$/', $date);
}

Reglas de validación enaplicación / config / form_validation.php:

$config = array(
     // other validation groups.....,
     'articles' => array(
          // other validated fields.....,
          array(
                'field' => 'date_p',
                'label' => 'Publishing date',
                'rules' => 'callback_match_date'
          )
     )
); 

Respuestas a la pregunta(1)

Su respuesta a la pregunta