$re = '/\.message\((?s)(.+?)\)\s*(?:\.(?:log|build)\(\)\s*)+\s*;/';
$str = '.message("Lorem ipsum dolor sit amet, consectetur adipiscing elit. :{}" + id).build().log();
.message("Lorem ipsum dolor: " + object.getProperty()).someOtherMethod()).log();
.message("Lorem ipsum dolor: " + object.getProperty()).build().log();
.message(" pretium mi at iaculis. Quisque bibendum {} "+ error.getMessage())
.build().log();
.message("vel pharetra est urna eget justo. Nunc in dignissim velit. {} "
+ error.getMessage().getProperty())
.build().log();
.message("Key : " + oldEntry.getKey() + " and Value: " + oldEntry.getValue())
.build()
.log();
.message("Curabitur vel facilisis ante.: "
+ information.getProfile().getId())
.build()
.log();';
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