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.