$re = '/\b(?P<date>(?P<day>3[0-1]|[0-2]?[\d])(?P<separator>\/|\-|\.)(?P<month>1[0-2]|[0-1]?[\d])\3(?P<year>[\d]{4}|[\d]{2}))/';
$str = 'este es el 22/11/2015 o el 8/2/1982 o el 9-5-2012 o tal vez el 10.10.15 mas que 9-5-12 tdo';
preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);
// Print the entire match result
var_dump($matches);
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for PHP, please visit: http://php.net/manual/en/ref.pcre.php