regex_match no CodeIgniter form_validation gera: Mensagem: preg_match (): Nenhum delimitador final '/' encontrado

Eu tenho procurado em outros posts semelhantes e o problema parecia ser uma barra sem escape. No entanto estou fugindo deles.

É assim que a string deve aparecer:

23/12/2012

e é assim que estou declarando a regra de validação:

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

O delimitador de término está lá e as duas barras intermediárias da data estão sendo escapadas com uma barra invertida. Eu também tentei isso que é um pouco diferente, mas eu recebo o mesmo erro:

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

Onde está o erro?

EDITAR:

Seguindo seu conselho, tentei usar uma função de retorno de chamada. Esta é a declaração, que está localizada dentro da classe do controlador na qual a validação do formulário está sendo executada:

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);
}

Regras de validação emapplication / 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'
          )
     )
); 

questionAnswers(1)

yourAnswerToTheQuestion