$re = '/(?ms)^(?P<field1>(?:"(?:[^\\\\"]|\\\\.)*"|(?:(?:(?!(?:\x7c)|\\\\|").)|(?:\\\\.)))*)(?:\x7c)(?P<field2>(?:"(?:[^\\\\"]|\\\\.)*"|(?:(?:(?!(?:\x7c)|\\\\|").)|(?:\\\\.)))*)(?:\x7c)?(?P<field3>(?:"(?:[^\\\\"]|\\\\.)*"|(?:(?:(?!(?:\x7c)|\\\\|").)|(?:\\\\.)))*)/m';
$str = '2022-02-03 11:45:21,732 |xxxxxxxxxxxxxxx.xxxxxx.com~220130042312|<== conn[SSL/TLS]=274107 op=26810 MsgID=26810 SearchResult {resultCode=0, matchedDN=null, errorMessage=null} ### nEntries=1 ### etime=3 ###';
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