$re = '/^\s*(?:
(?<protocol>https?)
\:[\/\\\\]{2}
(?<app>[\w\-]+)
\.
(?<client>[\w]+)
\-?
(?<environment>[\w]*)
\.
(?<audience>[\w\.]+)
\:?
(?<port>\d*)
[\\\\\/]
(?<instance>.*?)
)\s*$
/mxi';
$str = 'https://pii.ngkf-qa.commloanservices.com/qa2
https://pii.ngkf-qa.pncint.net/qa1
https://wlm-app.midlandls-qa.pncint.net/qa1-fdic
https://wlm-app.midlandls-qa.pncint.net/qa2fdic ';
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