<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/reference.pcre.pattern.syntax.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'tr',
  ),
  'this' => 
  array (
    0 => 'regexp.reference.subpatterns.php',
    1 => 'Alt Şablonlar',
    2 => 'Alt Şablonlar',
  ),
  'up' => 
  array (
    0 => 'reference.pcre.pattern.syntax.php',
    1 => 'Şablon S&ouml;zdizimi',
  ),
  'prev' => 
  array (
    0 => 'regexp.reference.internal-options.php',
    1 => 'Dahili Se&ccedil;eneklerin Ayarlanması',
  ),
  'next' => 
  array (
    0 => 'regexp.reference.repetition.php',
    1 => 'Yineleme',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'tr',
    'path' => 'reference/pcre/pattern.syntax.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="regexp.reference.subpatterns" class="section">
  <h2 class="title">Alt Şablonlar</h2>
  <p class="para">
   Alt şablonlar yaylı ayraçlarla sınırlanır ve iç içe olabilirler. Bir
   şablonun bir alt parçası iki şekilde kendini gösterir:
  </p>
  <ol type="1">
   <li class="listitem">
    <p class="para">
     Bir olasılık kümesinden oluşabilir. Örneğin,
     <code class="literal">gel(enek|incik|)</code> şablonu &quot;gel&quot;, &quot;gelenek&quot; ve
     &quot;gelincik&quot; sözcüklerinden biriyle eşleşecektir. Yaylı ayraçlar
     olmasaydı &quot;gelenek&quot;, &quot;incik&quot; ve boş bir dizge ile eşleşirdi.
    </p>
   </li>
   <li class="listitem">
    <p class="para">
     Şablon grupları olarak görünebilir (aşağıya bakınız). Şablonun tamamı
     eşleştiğinde, eşleşmeye konu dizgenin alt şablonla eşleşen parçası
     <span class="function"><strong>pcre_exec()</strong></span> işlevinin <em>ovector</em>
     bağımsız değişkeni üzerinden çağrıcıya aktarılır. Yakalayan alt şablon
     sayısını tutturmak için grup açılışları soldan sağa doğru sayılır
     (ilk  grup 1 olmak üzere).
    </p>
   </li>
  </ol>
  <p class="para">
   Örneğin, &quot;the red king&quot; dizgesini <code class="literal">the ((red|white)
   (king|queen))</code> şablonuyla eşleştirmek istersek &quot;red king&quot;,
   &quot;red&quot; ve &quot;king&quot; dizgeleri 1, 2 ve 3 olarak numaralanacaktır.
  </p>
  <p class="para">
   Aslında, salt yaylı ayraçları kullanarak bu iki işlevi yerine getirmek
   her zaman yararlı olmaz. Çoğu zaman bir gruplama alt şablonu bir
   yakalama gereksinimi olmaksızın kullanılır. Eğer açan yaylı ayracı
   takiben bir &quot;?:&quot; dizilimi varsa bu alt şablon herhangi bir yakalama
   yapmaz ve ardından gelen diğer yakalayan alt şablonların sayısında
   hesaba katılmaz. Örneğin, &quot;the  white  queen&quot; dizgesini <code class="literal">the
   ((?:red|white) (king|queen))</code> şablonu ile eşleştirmek istersek
   &quot;white queen&quot; ve  &quot;queen&quot; alt dizgeleri 1 ve 2 olarak numaralanır.
   Yakalayan alt şablonların azami sayısı 65535&#039;tir. Bununla birlikte,
   libpcre&#039;nin yapılandırma seçeneklerine bağlı olarak bu kadar büyük
   şablonları derlemek mümkün olmayabilir.
  </p>
  <p class="para">
   Uygun bir kısaltma olarak, yakalamayan bir alt şablonun başlangıcında bir
   seçenek ayarı gerekliyse seçenek harfleri &quot;?&quot; ile &quot;:&quot; arasına konabilir.
   Dolayısıyla,
  </p>
  <pre class="literallayout">
(?i:saturday|sunday)
(?:(?i)saturday|sunday)
  </pre>
  <p class="para">
   şablonlarının ikisi de aynı dizgeyle eşleşecektir. Olasılıklar soldan
   sağa değerlendirildiğinden ve seçenekler alt şablonun sonuna
   ulaşılıncaya kadar sıfırlanmayacağından tek bir olasılık dahilindeki bir
   seçenek ayarı sonraki olasılıkları da etkileyecektir, dolayısıyla
   yukarıdaki şablonlar &quot;Saturday&quot; ve hatta &quot;SUNDAY&quot; ile de eşleşecektir.
  </p>

  <p class="para">
   Bir alt şablonu
   <code class="literal">(?P&lt;ad&gt;kalıp)</code> ile isimlendirmek mümkündür.
   Eşleşmeleri içeren dizi, numaralarına göre indislenmiş eşleşmelerin
   yanısıra dizgelerine göre indislenmiş eşleşmeleri de içerecektir. Buna
   eşdeğer iki sözdizimi daha vardır: <code class="literal">(?&lt;ad&gt;kalıp)</code>
   ve <code class="literal">(?&#039;ad&#039;kalıp)</code>
  </p>
  <p class="para">
   Bazen, düzenli bir ifadede birden çok eşleşen, ancak değişen alt grupların
   varlığı gerekir. Normalde, bunlardan yalnızca biri muhtemelen eşleşecek
   olsa bile, bunların her birine kendi geri başvuru numarası verilir. Bunun
   üstesinden gelmek için, <code class="literal">(?|</code> sözdizimi yinelenen sayılara
   izin verir. <code class="literal">Sunday</code> dizgesiyle eşleşen aşağıdaki normal
   ifade ele alınırsa:
  </p>

  <div class="informalexample">
   <div class="example-contents">
<div class="cdata"><pre>(?:(Sat)ur|(Sun))day</pre></div>
   </div>

  </div>

  <p class="para">
   Burada <code class="literal">Sun</code>, 2. geri başvuruda depolanırken, 1. geri
   başvuru boştur. <code class="literal">Saturday</code> eşleşmesi, 1. geri başvuruda
   <code class="literal">Sat</code> verir, 2. geri başvuru yoktur.
   <code class="literal">(?|</code> kullanmak için kalıbı değiştirmek bu sorunu giderir:
  </p>

  <div class="informalexample">
   <div class="example-contents">
<div class="cdata"><pre>(?|(Sat)ur|(Sun))day</pre></div>
   </div>

  </div>

  <p class="para">
   Bu kalıp kullanılarak, hem <code class="literal">Sun</code> hem de
   <code class="literal">Sat</code> 1. geri başvuruda saklanacaktır.
  </p>
 </div><?php manual_footer($setup); ?>