<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/pcre.pattern.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'de',
  ),
  'this' => 
  array (
    0 => 'reference.pcre.pattern.modifiers.php',
    1 => 'M&ouml;gliche Modifikatoren in RegEx-Suchmustern',
    2 => 'Suchmuster-Modifikatoren',
  ),
  'up' => 
  array (
    0 => 'pcre.pattern.php',
    1 => 'PCRE-Suchmuster',
  ),
  'prev' => 
  array (
    0 => 'regexp.reference.performance.php',
    1 => 'Performance',
  ),
  'next' => 
  array (
    0 => 'reference.pcre.pattern.differences.php',
    1 => 'Differences From Perl',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'de',
    'path' => 'reference/pcre/pattern.modifiers.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="reference.pcre.pattern.modifiers" class="article">
 <h1 class="title">Suchmuster-Modifikatoren</h1>

 
 <p class="para">
  Die zurzeit möglichen PCRE-Modifikatoren sind unten aufgelistet. Die
  Bezeichnungen in Klammern beziehen sich auf die internen PCRE-Bezeichnungen
  für diese Modifikatoren. Leerzeichen und Zeilenumbrüche in Modifikatoren
  werden ignoriert. Andere Zeichen führen zu einem Fehler.
 </p>
 <p class="para">
  <blockquote class="blockquote">
   <dl>
    
     <dt><em>i</em> (<code class="literal">PCRE_CASELESS</code>)</dt>
     <dd>
      <span class="simpara">
       Wenn dieser Modifikator gesetzt ist, passen Buchstaben im Suchmuster
       sowohl auf groß- als auch auf kleingeschriebene Buchstaben.
      </span>
     </dd>
    
    
     <dt><em>m</em> (<code class="literal">PCRE_MULTILINE</code>)</dt>
     <dd>
      <span class="simpara">
       Standardmäßig behandelt PCRE eine zu durchsuchende Zeichenkette wie
       eine einzige Zeile von Zeichen (auch wenn sie tatsächlich mehrere
       Zeilenumbrüche enthält). Das Metazeichen für einen Zeilenanfang (^)
       passt nur auf den Anfang der Zeichenkette, das Metazeichen für ein
       Zeilenende ($) nur auf das Ende der Zeichenkette (falls der Modifikator
       <em>D</em> nicht gesetzt ist). Das ist genauso wie bei
       Perl.
      </span>
      <span class="simpara">
       Wenn dieser Modifikator gesetzt ist, passen die Zeilenanfang- und
       Zeilenende-Konstrukte in der Zeichenkette sowohl direkt nach, bzw. vor
       einem Zeilenumbruch als auch auf deren Anfang und Ende. Das entspricht
       dem Perl-Modifikator /m. Falls die Zeichenkette keine Sequenz &quot;\n&quot;
       enthält, oder im Suchmuster kein ^ oder $ vorkommt, hat dieser
       Modifikator keine Wirkung.
      </span>
     </dd>
    
    
     <dt><em>s</em> (<code class="literal">PCRE_DOTALL</code>)</dt>
     <dd>
      <span class="simpara">
       Wenn dieser Modifikator gesetzt ist, passt das Metazeichen Punkt im
       Suchmuster auf alle Zeichen inklusive Zeilenumbrüche. Ohne diesen
       Modifikator sind Zeilenumbrüche ausgeschlossen. Dieser Modifikator
       entspricht dem Perl-Modifikator /s. Unabhängig davon, ob dieser
       Modifikator gesetzt ist, passt eine verneinende Zeichenklasse, z. B.
       [^a], immer auf einen Zeilenumbruch.
      </span>
     </dd>
    
    
     <dt><em>x</em> (<code class="literal">PCRE_EXTENDED</code>)</dt>
     <dd>
      <span class="simpara">
       Wenn dieser Modifikator gesetzt ist, werden Leerräume im Suchmuster
       ignoriert, sofern sie nicht maskiert sind oder sich innerhalb einer
       Zeichenklasse befinden. Außerdem werden Zeichen, die außerhalb einer
       Zeichenklasse zwischen nicht maskierten # stehen, einschließlich dem
       nächsten Zeilenumbruch ignoriert. Das entspricht dem Perl-Modifikator
       /x und bietet die Möglichkeit, Kommentare in komplizierte Suchmuster
       einzufügen. Beachten Sie aber, dass dies nur für Datenzeichen gilt.
       Leerräume dürfen niemals innerhalb einer Folge spezieller Zeichen
       auftreten, zum Beispiel in der Folge (?(, die einen
       bedingten Teilausdruck einleitet.
      </span>
     </dd>
    
    
     <dt><em>A</em> (<code class="literal">PCRE_ANCHORED</code>)</dt>
     <dd>
      <span class="simpara">
       Wenn dieser Modifikator gesetzt ist, wird das Suchmuster &quot;verankert&quot;,
       das bedeutet, dass es gezwungen wird, nur auf den Anfang der
       durchsuchten Zeichenkette zu passen. Diese Wirkung kann auch durch
       geeignete Konstrukte im Suchmuster selbst erreicht werden, was in Perl
       die einzige Möglichkeit ist, sie zu realisieren.
      </span>
     </dd>
    
    
     <dt><em>D</em> (<code class="literal">PCRE_DOLLAR_ENDONLY</code>)</dt>
     <dd>
      <span class="simpara">
       Wenn dieser Modifikator gesetzt ist, passt ein Dollar-Metazeichen im
       Suchmuster nur auf das Ende der durchsuchten Zeichenkette. Ohne diesen
       Modifikator passt ein Dollarzeichen auch direkt vor dem letzten
       Zeichen, falls es ein Zeilenumbruch ist (aber nicht vor anderen
       Zeilenumbrüchen). Wenn der Modifikator <em>m</em> gesetzt
       ist, wird dieser Modifikator ignoriert. Für diesen Modifikator gibt es
       in Perl keine Entsprechung.
      </span>
     </dd>
    
    
     <dt><em>S</em></dt>
     <dd>
      <span class="simpara">
       Wenn ein Suchmuster mehrmals verwendet werden soll, lohnt es sich, mehr
       Zeit für dessen Analyse aufzubringen um die Suche zu optimieren. Wenn
       dieser Modifikator gesetzt ist, wird diese zusätzliche Analyse
       durchgeführt. Gegenwärtig ist die Untersuchung eines Suchmusters nur
       für nicht verankerte Suchmuster brauchbar, die am Anfang kein einzelnes
       fixiertes Zeichen haben.
       Seit PHP 7.3.0 hat dieses Flag keine Wirkung mehr.
      </span>
     </dd>
    
    
     <dt><em>U</em> (<code class="literal">PCRE_UNGREEDY</code>)</dt>
     <dd>
      <span class="simpara">
       Dieser Modifikator kehrt die Gier von Quantifikatoren um, sodass sie
       standardmäßig nicht gierig sind, aber gierig werden, wenn ihnen ein
       <code class="literal">?</code> folgt. Das ist nicht mit Perl kompatibel. Es kann
       auch <a href="regexp.reference.internal-options.php" class="link">innerhalb des
       Suchmusters</a> mit dem Modifikator <code class="literal">(?U)</code> oder
       durch ein Fragezeichen hinter dem Quantifikator (z. B.
       <code class="literal">.*?</code>) gesetzt werden.
      </span>
       <blockquote class="note"><p><strong class="note">Hinweis</strong>: 
        <p class="para">
         Im Ungreedy-Modus ist es nicht möglich, mehr als
         <a href="pcre.configuration.php#ini.pcre.backtrack-limit" class="link">pcre.backtrack_limit</a>
         Übereinstimmungen zu treffen.
        </p>
       </p></blockquote>
     </dd>
    
    
     <dt><em>X</em> (<code class="literal">PCRE_EXTRA</code>)</dt>
     <dd>
      <span class="simpara">
       Dieser Modifikator schaltet zusätzliche PCRE-Funktionalität ein, die
       nicht mit Perl kompatibel ist. Ein Backslash vor einem Buchstaben, der
       keine spezielle Bedeutung hat, verursacht eine Fehlermeldung und
       reserviert diese Kombinationen somit für künftige Erweiterungen.
       Standardmäßig wird ein Backslash vor einem Buchstaben, der keine
       spezielle Bedeutung hat, wie in Perl als Buchstabensymbol behandelt.
       Gegenwärtig werden von diesem Modifikator keine weiteren Eigenschaften
       kontrolliert.
      </span>
     </dd>
    
    
     <dt><em>J</em> (<code class="literal">PCRE_INFO_JCHANGED</code>)</dt>
     <dd>
      <span class="simpara">
       Die interne Option (?J) ändert die lokale Option
       <code class="literal">PCRE_DUPNAMES</code>. Erlaubt doppelte Namen für
       Teilsuchmuster. Von PHP 7.2.0 an wird der
       <code class="literal">J</code>-Modifikator ebenfalls unterstützt.
      </span>
     </dd>
    
    
     <dt><em>u</em> (<code class="literal">PCRE_UTF8</code>)</dt>
     <dd>
      <span class="simpara">
       Dieser Modifikator schaltet zusätzliche PCRE-Funktionalität ein, die
       nicht mit Perl kompatibel ist. Suchmuster und durchsuchte Zeichenketten
       werden als UTF-8 behandelt. Eine ungültige Zeichenkette bewirkt, dass
       die preg_*-Funktionen keine Übereinstimmungen finden. Ein ungültiges
       Suchmuster erzeugt einen Fehler der Stufe E_WARNING.
       UTF-8-Zeichenfolgen mit fünf oder sechs Oktetten werden als ungültig
       betrachtet.
      </span>
     </dd>
    
    
     <dt><em>n</em> (<code class="literal">PCRE_NO_AUTO_CAPTURE</code>)</dt>
     <dd>
      <span class="simpara">
       Dieser Modifikator bewirkt, dass einfache <code class="code">(xyz)</code>-Gruppen
       nicht erfassend sind. Nur benannte Gruppen wie
       <code class="code">(?&lt;name&gt;xyz)</code> sind erfassend. Dies wirkt sich nur
       darauf aus, welche Gruppen erfassend sind. Es ist weiterhin möglich,
       nummerierte Teilsuchmuster zu verwenden, und das Array matches enthält
       weiterhin nummerierte Ergebnisse. Verfügbar seit PHP 8.2.0.
      </span>
     </dd>
    
    
     <dt><em>r</em> (<code class="literal">PCRE2_EXTRA_CASELESS_RESTRICT</code>)</dt>
     <dd>
      <span class="simpara">
       Wenn <em>u</em> (<code class="literal">PCRE_UTF8</code>) und
       <em>i</em> (<code class="literal">PCRE_CASELESS</code>) verwendet
       werden, verhindert dieser Modifikator, dass ASCII- und
       Nicht-ASCII-Zeichen übereinstimmen.
      </span>
      <span class="simpara">
       Zum Beispiel passt <code class="code">preg_match(&#039;/\x{212A}/iu&#039;, &quot;K&quot;)</code> auf das
       Kelvin-Zeichen <code class="literal">K</code> (U+212A).
       Wenn <em>r</em> verwendet wird
       (<code class="code">preg_match(&#039;/\x{212A}/iur&#039;, &quot;K&quot;)</code>), gibt es keine
       Übereinstimmung.
      </span>
      <span class="simpara">
       Verfügbar seit PHP 8.4.0.
      </span>
     </dd>
    
   </dl>
  </blockquote>
 </p>
</div>
<?php manual_footer($setup); ?>