I have tried this many way and for some reason I cannot pull content between the 2 pattern options. function pullchannel($document) { preg_match_all('/<div class="channel" [^<>]*>(.*)<div class="channel" [^<>]*>/i',$document,$elements); $match = implode("\r\n",$elements[0]); $match = str_replace('"',"","$match"); return $match; }