<?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.meta.php',
    1 => 'Метасимволы',
    2 => 'Метасимволы',
  ),
  'up' => 
  array (
    0 => 'reference.pcre.pattern.syntax.php',
    1 => 'Синтаксис регулярных выражений',
  ),
  'prev' => 
  array (
    0 => 'regexp.reference.delimiters.php',
    1 => 'Разделители',
  ),
  'next' => 
  array (
    0 => 'regexp.reference.escape.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.meta" class="section">
  <h2 class="title">Метасимволы</h2>
  <p class="para">
   Сила регулярных выражений состоит в том, что в шаблон можно включать подшаблоны
   для альтернативного сопоставления и поиска повторений.
   Альтернативы и повторения кодируют в шаблоне <em>метасимволами</em>,
   которые парсер интерпретирует не как самих себя, а особым образом.
  </p>
  <p class="para">
   В коде метасимволы записывают двумя способами: одни парсер распознаёт за пределами
   квадратных скобок, другие — внутри квадратных скобок. Вне квадратных скобок
   распознаются следующие метасимволы:

   <table class="doctable table">
     <caption><strong>Метасимволы вне квадратных скобок</strong></caption>
    
     <thead>
      <tr>
       <th>Метасимвол</th>
       <th>Описание</th>
      </tr>

     </thead>

     <tbody class="tbody">
      <tr>
       <td>\</td>
       <td>общий экранирующий символ с несколькими назначениями</td>
      </tr>

      <tr>
       <td>^</td>
       <td>декларирует начало данных (или строки в многострочном режиме)</td>
      </tr>

      <tr>
       <td>$</td>
       <td>декларирует конец данных или до завершения строки (или окончание строки в многострочном режиме)</td>
      </tr>

      <tr>
       <td>.</td>
       <td>соответствует любому символу, кроме перевода строки (по умолчанию)</td>
      </tr>

      <tr>
       <td>[</td>
       <td>начало описания символьного класса</td>
      </tr>

      <tr>
       <td>]</td>
       <td>конец описания символьного класса</td>
      </tr>

      <tr>
       <td>|</td>
       <td>начало ветки условного выбора</td>
      </tr>

      <tr>
       <td>(</td>
       <td>начало подшаблона</td>
      </tr>

      <tr>
       <td>)</td>
       <td>конец подшаблона</td>
      </tr>

      <tr>
       <td>?</td>
       <td>
        расширяет смысл метасимвола <code class="literal">(</code>,
        выступает в роли квантификатора, который означает 0 или 1 вхождение,
        а также преобразовывает жадные квантификаторы в ленивые
        (смотрите раздел «<a href="regexp.reference.repetition.php" class="link">Повторение</a>»)
       </td>
      </tr>

      <tr>
       <td>*</td>
       <td>квантификатор, который означает 0 или более вхождений</td>
      </tr>

      <tr>
       <td>+</td>
       <td>квантификатор, который означает 1 или более вхождений</td>
      </tr>

      <tr>
       <td>{</td>
       <td>начало количественного квантификатора</td>
      </tr>

      <tr>
       <td>}</td>
       <td>конец количественного квантификатора</td>
      </tr>

     </tbody>
    
   </table>


   Часть шаблона в квадратных скобках называется
   <a href="regexp.reference.character-classes.php" class="link">символьным классом</a>.
   В символьный класс входят только следующие метасимволы:

   <table class="doctable table">
     <caption><strong>
      Метасимволы внутри квадратных скобок (<em>символьные классы</em>)
     </strong></caption>
    
     <thead>
      <tr>
       <th>Метасимвол</th>
       <th>Описание</th>
      </tr>

     </thead>

     <tbody class="tbody">
      <tr>
       <td>\</td>
       <td>общий экранирующий символ</td>
      </tr>

      <tr>
       <td>^</td>
       <td>означает отрицание класса, допустим только в начале класса</td>
      </tr>

      <tr>
       <td>-</td>
       <td>означает символьный интервал</td>
      </tr>

     </tbody>
    
   </table>


    Другие разделы детально описывают каждый из перечисленных метасимволов.
  </p>
 </div><?php manual_footer($setup); ?>