Kullandığın @, genel olarak kodun başlama ve bitiş noktasını gösteriyor.
@ yerine # , | , \ gibi karakterler kullanabilirsin fakat veri alacağın sayfada @ varsa preg_match_all sorun çıkarabiliyor.
Bu arada $cnn içeriğini de eklersen deseninin neresi hatalı görebilirim.