<?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 => 'ru',
  ),
  'this' => 
  array (
    0 => 'regexp.reference.anchors.php',
    1 => 'Якоря',
    2 => 'Якоря',
  ),
  'up' => 
  array (
    0 => 'reference.pcre.pattern.syntax.php',
    1 => 'Синтаксис регулярных выражений',
  ),
  'prev' => 
  array (
    0 => 'regexp.reference.unicode.php',
    1 => 'Свойства Unicode-символов',
  ),
  'next' => 
  array (
    0 => 'regexp.reference.dot.php',
    1 => 'Метасимвол точка',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'ru',
    '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.anchors" class="section">
  <h2 class="title">Якоря</h2>
  <p class="para">
   Метасимвол начала строки <code class="literal">^</code> вне символьного класса
   по умолчанию соответствует началу обрабатываемых данных,
   если не установили модификаторы. Внутри символьного класса метасимвол
   <code class="literal">^</code> несёт совершенно другое значение.
  </p>
  <p class="para">
   Циркумфлекс <code class="literal">^</code> не обязан быть первым символом
   шаблона, если в шаблоне задействовали несколько альтернатив,
   но должен быть первым символом в каждой альтернативе, в которой
   он появляется, если шаблон когда-либо будет соответствовать этой ветви.
   Если все альтернативы начинаются с циркумфлекса <code class="literal">^</code>,
   то есть шаблон ограничен совпадением только с началом входной строки,
   говорят что шаблон «заякорен». Есть и другие способы «заякорить» шаблон.
  </p>
  <p class="para">
   Знак доллара <code class="literal">$</code> — утверждение, которое истинно только тогда,
   когда текущая точка сопоставления находится в конце входной строки, или
   непосредственно перед последним символом, в случае если последний символ —
   перевод строки, если не указали модификаторы.
   Метасимвол конца строки <code class="literal">$</code> не обязан быть последним символом шаблона,
   если в шаблоне задействовали несколько альтернатив, но должен быть последним символом
   в каждой альтернативе, в которой он фигурирует. Внутри символьного класса
   символ «$» не несёт специального значения.
  </p>
  <p class="para">
   Поведение метасимвола конца строки изменяют модификатором
   <a href="reference.pcre.pattern.modifiers.php" class="link">PCRE_DOLLAR_ENDONLY</a> так,
   чтобы метасимвол соответствовал исключительно концу строки. Данный флаг никак не
   касается специальной последовательности \Z.
  </p>
  <p class="para">
   Значение метасимволов начала и конца строки меняется, если установили
   модификатор <a href="reference.pcre.pattern.modifiers.php" class="link">PCRE_MULTILINE</a>.
   В этой ситуации, кроме совпадений в начале или в конце строки,
   метасимволы «^» и «$» соответствуют позиции непосредственно после символа
   перевода строки «\n». Например, шаблон /^abc$/ встречается в строке «def\nabc»
   в многострочном режиме и не встречается в нормальном режиме.
   Таким образом, шаблон который «заякорен» в однострочном режиме, все ветки которого
   начинаются с циркумфлекса «^», не будет признан «заякоренным» в многострочном режиме.
   Парсер игнорирует модификатор <a href="reference.pcre.pattern.modifiers.php" class="link">PCRE_DOLLAR_ENDONLY</a>,
   если установили модификатор <a href="reference.pcre.pattern.modifiers.php" class="link">PCRE_MULTILINE</a>.
  </p>
  <p class="para">
   Следует заметить, что служебные последовательности \A, \Z и \z
   указывают для сопоставления с началом или концом строки в обоих
   режимах. И если все ветви шаблона начинаются с \A, шаблон будет «заякорен»
   независимо от присутствия модификатора
   <a href="reference.pcre.pattern.modifiers.php" class="link">PCRE_MULTILINE</a>.
  </p>
 </div><?php manual_footer($setup); ?>