$re = '/^ # début de chaîne
(?<sexe>[12]) # 1 ou 2 pour le sexe
(?<naissance>[0-9]{2}(?:0[1-9]|1[0-2])) # année et mois de naissance (aamm)
(?<departement>2[AB]|[0-9]{2}) # le département
(?<postal_code>[0-9]{3}) # suite du code postal sur trois chiffres
(?<numserie>[0-9]{3}) # numéro de série sur trois chiffres
(?<controle>[0-9]{2})? # numéro de contrôle (facultatif)
$ # fin de chaîne/x';
$str = '181125935505970';
preg_match($re, $str, $matches, PREG_OFFSET_CAPTURE, 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