Listeler, köşeli ayraçlı ifadeler olarak da bilinir ve bir ya da daha fazla öğeden oluşan kümelerdir. Burada öğe bir karakter, bir karakter sınıfı veya bir aralık ifadesidir. Bir listeye konabilecek öğe türü sözdizimi bitleri ile belirlenir. Son iki öğeyi aşağıdaki iki altbölümde açıklayacağız. Boş listeler geçersizdir.
Bir eşleşme listesi, liste öğelerinden biri ile temsil edilen tek bir karakterle eşleşir. Bir eşleşme listesini [ ile gösterilen bir eşleşme listesi başlatma işleci ile başlayan bir ya da daha fazla öğe içeren ve ] ile gösterilen bir eşleşme listesi bitirme işleci ile biten bir ifade olarak oluşturabilirsiniz.
Örneğin; [ab] ifadesi a veya b ile eşleşir. [ad]* ise boş bir dizge veya içinde herhangi bir sırada a veya b olan dizgelerle eşleşir. Regex, içerisinde [ olan ama karşılığı olan ] karakterini içermeyen düzenli ifadeleri geçersiz sayar.
Bir
eşleşmeme listesi eşleşme listesine benzer fakat sadece, liste içerisinde temsil edilmeyen karakterleri eşleştirirler. Bir eşleşmeme listesini başlatmak için, bir eşleşme listesi başlatma işleci yerine
eşleşmeme listesi başlatma işleci kullanırız (
[^[112]).
Örneğin; [^ab], a ve
b hariç herhangi bir karakter ile eşleşebilir.
Şablon tamponu içinde
posix_newline alanı bir ise, eşleşmeme listesi satırsonu karakteri ile eşleşmez.
Pek çok karakter, liste içerisinde, özel anlamlarını kaybederler. Liste içerisinde özel anlamı olan karakter:
- ]
Şayet listedeki ilk karakter değilse, listeyi kapatır. Bu nedenle liste içerisinde ] karakterini kullanmak istiyorsanız, bu karakteri en başa koymalısınız.
- \
Şayet RE_BACKSLASH_ESCAPE_IN_LISTS sözdizimi biti bir ise, önündeki karakteri önceler.
- [:
- :]
- -
Şayet bir liste içerisinde ilk veya son karakter değilse ya da bir aralığın uç noktası değilse,
aralık işlecini temsil eder.
Tüm diğer karakterler sıradandır. Örneğin; [.*] ifadesi hem . hem de * ile eşleşir.