$re = '/CC :\' \d+\' de DN : \'CN=(?<CN>[^,]+)[^\']+\'\n(- CODE \(serial : (?P<CODE>\d+)\) error.\n-+\n)+/';
$str = 'CC :\' 223\' de DN : \'CN=XXX 2025, ABCDEFGHIJKLMNOPQRSTUVWXYZ\'
- CODE (serial : 1234) error.
---------------------------------------------------------
- CODE (serial : 5678) error.
---------------------------------------------------------
- CODE (serial : 5678) error.
---------------------------------------------------------
- CODE (serial : 5678) error.
---------------------------------------------------------
- CODE (serial : 5678) error.
---------------------------------------------------------
CC :\' 224\' de DN : \'CN=YYY 2025, ABCDEFGHIJKLMNOPQRSTUVWXYZ\'
';
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