PCRE optional modifiers gelen gerçek normal ifade ayrı delimiters gerektirir. PHP ile herhangi bir alfanümerik olmayan, non-eğik çizgi, boşluk olmayan karakter ve çiftleri (parantez) gelip hatta sınırlayıcı kullanabilirsiniz.
Senin durumunda ( sınırlayıcı olarak kullanılır ve ilk gelen ) normal ifadenin sonunu kapanış lider; geri kalanı modifiye ediciler olarak kabul edilir:
([http://some.url.com/index.php?showtopic=\"]*)([0-9]+(?:\.[0-9]*)?)
^ ^
Ama biten ayıracından sonra ilk karakter (() geçerli bir değiştirici değildir. Bu hata mesajı Bilinmeyen değiştirici '(' em> diyor neden.
Çoğu durumda, / Perl gibi sınırlayıcı olarak kullanılır. Ama bu normal ifadede / her oluşumunu kaçmak için gerektirir. Bu yüzden düzenli ifadede değil bir sınırlayıcı seçmek için iyi bir seçimdir. Senin durumunda kullanmak # like BoltClock suggested. Olabilir
Oh, ve bu arada: [http://some.url.com/index.php?showtopic=\"] gibi bir karakter sınıfı listelenen karakterlerden sadece tek bir karakteri temsil eder. Yani ya h, t, p, :, /, vb {ifade soruyorsan [(6)]}, kelimenin tam anlamıyla, sadece http://some\.url\.com/index\.php\?showtopic=" (meta karakterleri kaçmak için unutma) kullanın.