$re = '/^(?<eventtimestamp>[\d:. -]+)\|(?<TYPE>[a-zA-Z]+)\|(?<LOGLEVEL>[a-zA-Z]+)\|(?<IPaddress>[\d.]+)\|(?<HOSTNAME>[^|]+)\|(?<message>.*)$/s';
$str = '2016-10-21 01:10:27.513|main|INFO|125.0.225.25|gdtl01db7i7h|{"instanceName":"testinstance","applicationId":"ABS3PP","transactionStatus":"C","responseCode":"0","responseDescription":"Success","initiatedTimestamp":"2016-09-19 00:00:00.0","elapsedTime":"44400.0","clientApp":"ServiceGateway~368","clientIp":"35.23.89.235","cluster":"P27C","httpMethod":"POST","requestURL":"/test/ctn"}';
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