$re = '/(?\'Date\'\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2},\d{3})\s*\[(?\'Level\'ERROR.|WARN|INFO|DEBUG).*\]\s*\[(?\'Thread\'\d*).*\]\s*(?\'Message\'.*)/m';
$str = '2016-09-26 11:42:47,350 [INFO ][40 ] Info, StartAsync endpoint sv.queue://sqlservicebus/costascribe/handlerloghandler/handlerlogsmessage empty...
2016-09-26 11:42:48,411 [INFO ][40 ] Endpoint sv.queue://sqlservicebus/costascribe/handlerloghandler/handlerlogsmessage empty.
2016-09-26 11:42:48,411 [INFO ][57 ] Info, finished processing endpoint sv.queue://sqlservicebus/costascribe/handlerloghandler/handlerlogsmessage...
2016-09-26 11:42:48,411 [INFO ][57 ] Info, finished processing endpoint sv.queue://sqlservicebus/costascribe/handlerloghandler/handlerlogsmessage, sleep until 2016-09-26 10:43:48Z
2016-09-26 11:42:48,411 [INFO ][57 ] Observer Current Message Task...
2016-09-26 11:42:48,411 [INFO ][4 ] Info, StartAsync endpoint sv.queue://sqlservicebus/platform/poisonmessagedigesthandler/poisonmessagedetecteddigest empty...
2016-09-26 11:42:48,411 [INFO ][4 ] Endpoint sv.queue://sqlservicebus/platform/poisonmessagedigesthandler/poisonmessagedetecteddigest empty.
2016-09-26 11:42:48,411 [INFO ][57 ] Info, finished processing endpoint sv.queue://sqlservicebus/platform/poisonmessagedigesthandler/poisonmessagedetecteddigest...
2016-09-26 11:42:48,411 [INFO ][57 ] Info, finished processing endpoint sv.queue://sqlservicebus/platform/poisonmessagedigesthandler/poisonmessagedetecteddigest, sleep until 2016-09-26 10:43:48Z
2016-09-26 11:42:48,411 [INFO ][57 ] Observer Current Message Task...
2016-09-26 11:42:51,515 [INFO ][40 ] Info, StartAsync endpoint sv.queue://sqlservicebus/platform/poisonmessagedigesthandler/poisonmessagereplayeddigest empty...
2016-09-26 11:42:51,515 [INFO ][40 ] Endpoint sv.queue://sqlservicebus/platform/poisonmessagedigesthandler/poisonmessagereplayeddigest empty.
2016-09-26 11:42:51,515 [INFO ][4 ] Info, StartAsync endpoint sv.queue://sqlservicebus/costascribe/int02handler/int02messageprepared empty...
2016-09-26 11:42:51,515 [INFO ][4 ] Endpoint sv.queue://sqlservicebus/costascribe/int02handler/int02messageprepared empty.
2016-09-26 11:42:51,515 [INFO ][57 ] Info, finished processing endpoint sv.queue://sqlservicebus/platform/poisonmessagedigesthandler/poisonmessagereplayeddigest...
2016-09-26 11:42:51,515 [INFO ][57 ] Info, finished processing endpoint sv.queue://sqlservicebus/platform/poisonmessagedigesthandler/poisonmessagereplayeddigest, sleep until 2016-09-26 10:43:51Z
2016-09-26 11:42:51,515 [INFO ][57 ] Observer Current Message Task...
2016-09-26 11:42:51,515 [INFO ][57 ] Info, finished processing endpoint sv.queue://sqlservicebus/costascribe/int02handler/int02messageprepared...
2016-09-26 11:42:51,515 [INFO ][57 ] Info, finished processing endpoint sv.queue://sqlservicebus/costascribe/int02handler/int02messageprepared, sleep until 2016-09-26 10:43:01Z
2016-09-26 11:42:51,515 [INFO ][57 ] Observer Current Message Task...
2016-09-26 11:42:55,524 [INFO ][40 ] Info, StartAsync endpoint sv.queue://sqlservicebus/costascribe/int03handler/int03messageprepared empty...
2016-09-26 11:42:55,524 [INFO ][40 ] Endpoint sv.queue://sqlservicebus/costascribe/int03handler/int03messageprepared empty.
';
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