$re = '/((([A-Za-z]{3,9}:(?:\/\/)?)(?!(www\.|support\.)*apple\.com|(www\.|forums\.|images\.|cdn\.)*macrumors\.com|(www\.)*youtube\.com|(www\.)*amazon\.|amzn\.to|a\.to)[A-Za-z0-9.-]+[A-Za-z0-9.-]+)((?:\/[\+~%\/.\w-_]*)?\??(?:[-\+=&;%@.\w_]*)#?(?:[\w]*))?)/m';
$str = 'link: [URL] https://www.itunes.com [/URL]
cds http://www.apple.com
cds https://wkmclds.com
https://itunes.com
htt
dcklscmdskl https://cdn.macrumors.com
http://up.co
http://amazo
spam spam';
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