Len doplním, v preg_* (replace, match, match_all...) prvý znak v regexe určuje akoby "hranicu"/oddelovač a môže to byť v podstate akýkoľvek nealfanumerický znak (viac v dokumentácií).
To znamená, že napr toto
Kód:
preg_match( '/nejaky\s+pattern/i', $str)
je ekvivalentné tomuto
Kód:
preg_match( '#nejaky\s+pattern#i', $str)
alebo tomuto
Kód:
preg_match( '%nejaky\s+pattern%i', $str)
To je výhodné pri matchovaní lomítok (tých je veľa väčšinou v html, alebo url), aby si ich nemusel escapovať. Takže napr tvoj prípad (ja osobne používam znak #):
Kód:
$pattern = '#(^| |>)(www([.]?[a-zA-Z0-9_/-?])[^< ]*)#i';
To je len taká vychytávka, možno sa bude hodiť