$re = '/<NUM_INS>(?\'ins_numins\'.*)<\x2FNUM_INS>.*<NUM_EQUIPEMENT>(?\'num_equipement\'.*)<\x2FNUM_EQUIPEMENT>.*<APT_CIVILITE>(?\'apt_civilite\'.*)<\x2FAPT_CIVILITE>.*<APT_NOM>(?\'apt_nom\'.*)<\x2FAPT_NOM>.*<APT_TELEPHONE>(?\'apt_telephone\'.*)<\x2FAPT_TELEPHONE>.*<APT_E_MAIL>(?\'apt_e_mail\'.*)<\x2FAPT_E_MAIL>.*<APT_LOCALISATION>(?\'apt_localisation\'.*)<\x2FAPT_LOCALISATION>.*<TSY_CD>(?\'tsy_lib\'.*)<\x2FTSY_CD>.*<QSY_CD>(?\'qsy_lib\'.*)<\x2FQSY_CD>.*<COMMENTAIRE_EXTERNE>(?\'commentaire_externe\'.*)<\x2FCOMMENTAIRE_EXTERNE>/m';
$str = '<NUM_EXTERNE></NUM_EXTERNE> <NUM_INS>5092427002</NUM_INS> <NUM_EQUIPEMENT></NUM_EQUIPEMENT> <APT_CIVILITE>1</APT_CIVILITE> <APT_NOM>PC INCENDIE SEQUANA HQPAR -</APT_NOM> <APT_TELEPHONE>+33145381818</APT_TELEPHONE> <APT_E_MAIL>PCINCENDIE.SEQUANA@accor.com</APT_E_MAIL> <APT_LOCALISATION>SS1 local TGS2</APT_LOCALISATION> <APT_CR_MAIL>O</APT_CR_MAIL> <TSY_CD>3764</TSY_CD> <QSY_CD>5</QSY_CD> <COMMENTAIRE_EXTERNE>Alarme CPI : TGS2 Code alarme Q4.</COMMENTAIRE_EXTERNE> ';
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