Karakter Sınıfları - Köşeli Ayraçlar
  
   Bir karakter sınıfı [ köşeli ayracıyla ] köşeli ayracı arasına alınarak
   tanımlanır. Bir karakter sınıfı içinde ] köşeli ayracının özel bir
   anlamı yoktur, ancak bir karakter sınıfı içinde kullanılması gerekliyse
   sınıfın (varsa, şapka iminden sonraki) ilk üyesi olmak zorundadır, yoksa
   bir tersbölüyle öncelenmesi gerekir.
  
  
   Bir karakter sınıfı eşleşmeye konu dizgenin içindeki tek bir karakterle
   eşleşir; sınıfın ilk üyesi bir şapka imi olmadıkça, eşleşen karakterin
   karakter sınıfının üyesi olması yeterlidir; aksi takdirde eşleşen
   karakterin sınıfın bir üyesi olmaması gerekir. Eğer şapka iminin bir
   karakter sınıfının üyesi olması gerekliyse, ya sınıfın ilk üyesi
   olmamalı ya da bir tersbölü ile öncelenmelidir.
  
  
   Örneğin, [aeıioöuü] sınıfı herhangi bir küçük sesli ile eşleşirken
   [^aeıioöuü] sınıfı herhangi bir küçük sessizle eşleşecektir. Yalnız
   şuna dikkat edin: Karakter sınıfının başlangıcındaki şapka imi, sadece
   sınıfı olumsuzlayan bir gösterim uzlaşımıdır. Bir tez işleci değildir;
   eşleşmeye konu dizge içindeki karakterleri yine de tüketmeye devam eder
   ve dizgenin sonuna gelindiğinde başarısız olur.
  
  
   Harf büyüklüğüne duyarsız eşleşme etkinken, sınıf içindeki herhangi bir
   harf, hem büyük hem de küçük harfi simgeleyecektir. Örneğin, harf
   büyüklüğüne duyarsız eşleşme etkinken [aeiou] sınıfı "A" veya "a" ile
   eşleşirken, [^aeiou] sınıfı harf büyüklüğüne duyarlılık etkin kılınmış
   gibi sadece "A" ile eşleşmeyecektir.
  
  
   Satırsonu karakteri,
   PCRE_DOTALL
   veya
   PCRE_MULTILINE
   seçeneği atanmış olsun ya da olmasın karakter sınıfları içinde asla
   özel bir anlamda ele alınmaz. [^a] gibi bir sınıf daima bir satırsonu
   karakteri ile eşleşecektir.
  
  
   Tire imi, bir karakter sınıfı içinde bir aralık belirtmek için
   kullanılabilir. Örneğin, [d-m] sınıfı, d ve m dahil ikisi arasında
   kalan herhangi bir karakterle eşleşecektir. Eğer bir tire iminin
   sınıfın bir üyesi olması gerekliyse, ya bir aralık belirteci olarak
   değerlendirilmeyeceği bir yere (başa veya sona) konmalı ya da tersbölü
   ile öncelenmelidir.
  
  
   Bir "]" karakterinin kendisi olarak bir aralığın son karakteri olması
   mümkün değildir. Örneğin, [W-]46] şablonu içindeki sınıf "W" ve "-"
   karakterlerinden oluşacak, dolayısıyla sadece "W46]" veya "-46]"
   dizgesiyle eşleşecektir. Halbuki, "]" karakteri bir tersbölü ile
   öncelenseydi, [W-\]46] şablonu içindeki sınıf "W" ve "]" dahil arada
   kalan tüm karakterlerle eşleşecekti. Sınıf içinde "]" karakterini
   tersbölü ile öncelemek yerine karakterin sekizlik veya onaltılık
   gösterimleri de kullanılabilirdi.
  
  
   Aralıklar ASCII harmanlama dizilimleri olarak çalışabildiği gibi
   örneğin, [\000-\037] şeklinde sayısal olarak belirtilmiş karakterler
   içinde kullanılabilir. Eğer harflerden oluşan bir aralık belirtilmişse
   ve harf büyüklüğüne duyarsız eşleşme yapılıyorsa aralık, içerdiği bir
   harfin hem büyüğüyle hem de küçüğüyle eşleşecektir. Örneğin [W-c]
   aralığı harf büyüklüğüne duyarsız olarak [][\^_`wxyzabc] dizgesiyle
   eşleşir. Eğer "tr" yereli kullanılıyorsa, [\xc6-\xcb] aralığı hem büyük
   hem de küçük Ç ile eşleşir.
  
  
   \d, \D, \s, \S, \w ve \W karakter türleri de bir karakter sınıfı içinde
   kullanılabilir ve sınıfa eşleştikleri karakterleri eklerler. Örneğin,
   [\dABCDEF] sınıfı herhangi bir onaltılık rakam ile eşleşecektir. Şapka
   karakteri, küçük harfli işleçlerle sağlanandan daha sınırlı bir kümeyi
   belirtmek için büyük harfli işleçlerle kullanılabilir. Örneğin, [^\W_]
   sınıfı alt çizgi imi hariç herhangi bir harf veya rakam ile
   eşleşecektir.
  
  
   Bir karakter sınıfının başlangıcında belirtildiğinde \,  -,  ^
   karakterleri ve sonlandırıcı ] karakteri, karakter sınıfı içinde özel
   bir anlama sahip değildir, ancak öncelenmiş olmaları da bir sorun
   teşkil etmezdi. Şablon sonlandırıcı daima özeldir ve bir ifade içinde
   kullanıldığında daima öncelenmesi gerekir.
  
  
   Perl, karakter sınıfları için POSIX gösterimini destekler. Bu gösterimde
   sınıf isimleri [: ve :]
   karakterleri arasına alınır. Örneğin, [01[:alpha:]%]
   şablonu, "0", "1", herhangi bir abecesel karakter veya "%" ile
   eşleşecekir. Desteklenen sınıf isimleri şunlardır:
   
    Karakter sınıfları
    
     
      | alnum | harfler ve rakamlar | 
      | alpha | sadece harfler | 
      | ascii | 0 - 127 arasındaki karakter kodları | 
      | blank | sadece boşluk ve sekme karakteri | 
      | cntrl | denetim karakterleri | 
      | digit | onluk rakamlar (\d ile aynı) | 
      | graph | boşluk hariç tüm basılabilen karakterler | 
      | lower | küçük harfler | 
      | print | boşluk dahil tüm basılabilen karakterler | 
      | punct | harfler ve rakamlar hariç tüm basılabilen karakterler | 
      | space | tüm boşluk karakterleri (\s ile benzer fakat aynı değil) | 
      | upper | büyük harfler | 
      | word | "sözcük" karakterleri (\w ile aynı) | 
      | xdigit | onaltılık rakamlar | 
     
    
   
   space karakterleri: HT (9), LF (10), VT (11), FF (12),
   CR (13) ve boşluk (32). Farkedeceğiniz gibi VT karakteri de (kod
   11) listeye dahil edilmiştir. Perl uyumluluğu açısından "space" ile
   
\s arasındaki fark budur.
  
  
   word ismi bir Perl eklemesi olup
   blank ismi Perl 5.8'deki bir GNU eklemesidir. Diğer
   bir ekleme de olumsuzlama belirten ^ karakteri olup
   ikinokta iminden hemen sonra kullanılır. Örneğin,
   [12[:^digit:]] şablonu "1", "2" veya rakam olmayan
   herhangi bir karakter ile eşleşir.
  
  
   UTF-8 kipinde, 128'den büyük değerli karakterler POSIX karakter
   sınıflarının hiçbiriyle eşleşmeyecektir. libpcre 8.10'dan
   itibaren bazı karakter sınıfları Unicode karakter özelliklerini
   kullanacak şekilde değiştirilmiştir, bu durumda söz konusu kısıtlama
   geçerli değildir. Ayrıntılar için » PCRE(3) kılavuzuna bakın.