<?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 => 'es',
  ),
  'this' => 
  array (
    0 => 'regexp.reference.internal-options.php',
    1 => 'Configuraci&oacute;n de opciones internas',
    2 => 'Configuraci&oacute;n de opciones internas',
  ),
  'up' => 
  array (
    0 => 'reference.pcre.pattern.syntax.php',
    1 => 'Sintaxis de expresiones regulares PCRE',
  ),
  'prev' => 
  array (
    0 => 'regexp.reference.alternation.php',
    1 => 'Alternancia',
  ),
  'next' => 
  array (
    0 => 'regexp.reference.subpatterns.php',
    1 => 'Subpatrones',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'es',
    '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.internal-options" class="section">
  <h2 class="title">Configuración de opciones internas</h2>
  <p class="para">
   La configuración de <a href="reference.pcre.pattern.modifiers.php" class="link">PCRE_CASELESS</a>,
   <a href="reference.pcre.pattern.modifiers.php" class="link">PCRE_MULTILINE</a>,
   <a href="reference.pcre.pattern.modifiers.php" class="link">PCRE_DOTALL</a>,
   <a href="reference.pcre.pattern.modifiers.php" class="link">PCRE_UNGREEDY</a>,
   <a href="reference.pcre.pattern.modifiers.php" class="link">PCRE_EXTRA</a>,
   <a href="reference.pcre.pattern.modifiers.php" class="link">PCRE_EXTENDED</a>
   y PCRE_DUPNAMES puede cambiarse desde dentro del patrón mediante
   una secuencia de letras de opciones de Perl encerradas entre &quot;(?&quot; y
   &quot;)&quot;. Las letras de opciones son:

   <table class="doctable table">
    <caption><strong>Letras de opciones internas</strong></caption>
    
     <tbody class="tbody">
      <tr>
       <td><code class="literal">i</code></td>
       <td>para <a href="reference.pcre.pattern.modifiers.php" class="link">PCRE_CASELESS</a></td>
      </tr>

      <tr>
       <td><code class="literal">m</code></td>
       <td>para <a href="reference.pcre.pattern.modifiers.php" class="link">PCRE_MULTILINE</a></td>
      </tr>

      <tr>
       <td><code class="literal">s</code></td>
       <td>para <a href="reference.pcre.pattern.modifiers.php" class="link">PCRE_DOTALL</a></td>
      </tr>

      <tr>
       <td><code class="literal">x</code></td>
       <td>para <a href="reference.pcre.pattern.modifiers.php" class="link">PCRE_EXTENDED</a></td>
      </tr>

      <tr>
       <td><code class="literal">U</code></td>
       <td>para <a href="reference.pcre.pattern.modifiers.php" class="link">PCRE_UNGREEDY</a></td>
      </tr>

      <tr>
       <td><code class="literal">X</code></td>
       <td>para <a href="reference.pcre.pattern.modifiers.php" class="link">PCRE_EXTRA</a>
        (ya no soportado a partir de PHP 7.3.0)</td>
      </tr>

      <tr>
       <td><code class="literal">J</code></td>
       <td>para <a href="reference.pcre.pattern.modifiers.php" class="link">PCRE_INFO_JCHANGED</a></td>
      </tr>

     </tbody>
    
   </table>

  </p>
  <p class="para">
   Por ejemplo, (?im) establece coincidencia sin distinción de mayúsculas y minúsculas, multiline. También es posible anular estas opciones precediendo la letra
   con un guión, y una configuración combinada como
   (?im-sx), que establece <a href="reference.pcre.pattern.modifiers.php" class="link">PCRE_CASELESS</a> y
   <a href="reference.pcre.pattern.modifiers.php" class="link">PCRE_MULTILINE</a>
   mientras anula <a href="reference.pcre.pattern.modifiers.php" class="link">PCRE_DOTALL</a> y
   <a href="reference.pcre.pattern.modifiers.php" class="link">PCRE_EXTENDED</a>,
   también está permitido. Si una letra aparece tanto antes como después del
   guión, la opción se anula.
  </p>
  <p class="para">
   Cuando ocurre un cambio de opción a nivel superior (es decir, no dentro
   de paréntesis de subpatrón), el cambio se aplica al resto del
   patrón que sigue. Por lo tanto, <code class="literal">/ab(?i)c/</code> coincide solo con &quot;abc&quot;
   y &quot;abC&quot;.
  </p>
  <p class="para">
   Si un cambio de opción ocurre dentro de un subpatrón, el efecto
   es diferente. Este es un cambio de comportamiento en Perl 5.005.
   Un cambio de opción dentro de un subpatrón afecta solo a esa parte
   del subpatrón que sigue, por lo que

   <code class="literal">(a(?i)b)c</code>

   coincide con &quot;abc&quot; y &quot;aBc&quot; y ninguna otra cadena (asumiendo <a href="reference.pcre.pattern.modifiers.php" class="link">PCRE_CASELESS</a> no se usa). De esta manera, las opciones pueden tener diferentes configuraciones en
   diferentes partes del patrón. Cualquier cambio realizado en una alternativa se
   lleva a las ramas posteriores dentro del mismo subpatrón. Por
   ejemplo,

   <code class="literal">(a(?i)b|c)</code>

   coincide con &quot;ab&quot;, &quot;aB&quot;, &quot;c&quot;, y &quot;C&quot;, incluso cuando se coincide
   con &quot;C&quot; la primera rama se abandona antes de la configuración de la opción.
   Esto se debe a que los efectos de la configuración de las opciones ocurren al
   tiempo de compilación. Habría un comportamiento muy extraño de otra manera.
  </p>
  <p class="para">
   Las opciones específicas de PCRE <a href="reference.pcre.pattern.modifiers.php" class="link">PCRE_UNGREEDY</a> y
   <a href="reference.pcre.pattern.modifiers.php" class="link">PCRE_EXTRA</a> pueden
   cambiarse de la misma manera que las opciones compatibles con Perl usando las letras U y X respectivamente. La configuración de la bandera
   (?X) es especial en que siempre debe ocurrir antes en
   el patrón que cualquiera de las características adicionales que activa,
   incluso cuando está a nivel superior. Es mejor ponerla al principio.
  </p>
 </div><?php manual_footer($setup); ?>