Bir karakter sınıfının dışında, öntanımlı eşleşme kipinde, şapka imi (^
),
eğer geçerli eşleşme noktası eşleşmeye konu dizgenin başlangıcındaysa
doğru sonuç veren bir savdır. Bir karakter sınıfının içinde ise tamamen
farklı bir anlama sahiptir (aşağıya bakın).
Şapka imi (^
), eğer şablon olasılıklar içeriyorsa
şablonun ilk karakteri olmak zorunda değildir, fakat eşleşmenin
istendiği her olasılığın ilk karakteri olmak zorundadır. Eğer tüm
olasılıklar bir şapka imi (^
) ile
başlıyorsa, yani şablon eşleşmeye konu dizgenin daima başlangıcıyla
eşleştirilmeye çalışılıyorsa buna, dizge başlangıcına demirlenmiş
şablon denir. (Bir şablonun demirlenmesine sebep olan başka oluşumlar da
olabilir.)
Dolar imi ($
), eğer geçerli eşleşme noktası
eşleşmeye konu dizgenin sonundaysa veya dizgenin (öntanımlı olarak) son
karakteri olan satırsonu karakterinin hemen öncesindeyse doğru sonuç
veren bir savdır. Dolar imi ($
), eğer şablon
olasılıklar içeriyorsa şablonun son karakteri
olmak zorunda değildir, fakat eşleşmenin istendiği her olasılığın son
karakteri olmak zorundadır. Dolar iminin bir karakter sınıfının içinde
özel bir anlamı yoktur.
Derleme veya eşleştirme sırasında PCRE_DOLLAR_ENDONLY seçeneğini etkin kılarak dolar iminin eşleşmeye konu dizgenin daima sonu ile eşleşmesi sağlanacak şekilde anlamı değiştirilebilir. Bu seçeneğin atanmış olması \Z tezinin anlamını etkilemeyecektir.
Şapka ve dolar imlerinin anlamları
PCRE_MULTILINE
seçeneği (çok satırlı kip) etkin kılınarak değiştirilebilir. Bu
durumda, şapka imi eşleşmeye konu dizge içindeki "\n" karakterinin
hemen sonrasıyla, dolar imi ise hemen öncesiyle eşleşecektir. Örneğin,
aksi belirtilmedikçe, /^abc$/
şablonu çok satırlı kipte
"def\nabc" dizgesiyle eşleşecektir. Sonuç olarak, tek satırlık kipte,
tüm olasılıkların şapka imi ile başlaması sebebiyle dizge başlangıcına
demirlenmiş şablonlar çok satırlı kipte dizge başlangıcına demirlenmiş
olmazlar. Eğer
PCRE_MULTILINE
seçeneği etkinse
PCRE_DOLLAR_ENDONLY seçeneği yoksayılır.
\A, \Z ve \z tezlerinin eşleşmeye konu dizgenin başlangıcı ve sonu ile eşleşmek amacıyla her iki kipte de kullanılabileceğine dikkat ediniz. Eğer bir şablondaki tüm olasılıklar \A ile başlıyorsa, PCRE_MULTILINE seçeneği etkin olsun olmasın, şablon daima dizgenin başlangıcına demirlenmiş olacaktır.