SYNOPSIS
        string * regexp(string *list, string pattern)

BESCHREIBUNG
        Liefert ein neues Array mit all jenen Strings aus list zurueck,
	welche auf das Muster pattern passen. Diese Funktion verwendet
	dieselbe Syntax fuer regulaere Ausdruecke wie ed():

        . Passt auf jedes beliebige Zeichen.

        ^ Passt auf den Beginn einer Zeichenkette.

        $ Passt auf das Ende einer Zeichenkette.

        \< Passt auf das Beginn eines Wortes.

        \> Passt auf das Ende eines Wortes.

        \B Passt auf eine leere Zeichenkette an einem Wortrand
	   (sollte aehnlich wie das Symbol zur Emacs-Kompatibilitaet in
	   GNU egrep sein), seit 3.2@249

        x|y Passt entweder auf den regulaeren Ausdruck x oder y.

        () Verwendet den eingeschlossenen regulaeren Ausdruck wie einen
	   'simplen' Ausdruck.

        x* Der regulaere Ausdruck x passt beliebig oft (0 oder mehr).

        x+ Der regulaere Ausdruck x passt mindestens einmal (1 oder mehr).

        [..] Passt auf jedes in den Klammern eingeschlossenes Zeichen.

        [^ ..] Passt auf jedes Zeichen, welches nicht in den Klammern
	       eingeschlossen ist. Das .. ist durch einzelne Zeichen oder
	       Bereiche von Zeichen zu ersten:
        [abc] Passt auf a, b oder c.
        [ab0-9] Passt auf a, b, c oder eine beliebige Ziffer.
        [^a-z] Passt auf keinen klein geschriebenen Buchstaben.

        \c Passt auf das Zeichen c, selbst wenn es eines der Sonderzeichen ist.

        Wenn es einen Fehler im regulaeren Ausdruck gibt, wird ein
	Laufzeitfehler ausgeloest.

BEISPIELE
        string strs;
        if (strs = regexp(({ "Bitte helfen sie mir, Sir John." }),
                          "\\<helfen\\>.*\\<mir\\>")) {
           if (sizeof(strs)
              write("Es passt.\n");
        }

        Der regulaere Ausdruck wird den uebergebenen String (welcher in
	einem Array verpackt wurde) daraufhin ueberpruefen, ob
	sowas wie "helfen ... mir" darin vorkommt.

GESCHICHTE
        LDMud 3.2.9 fuegte das Sonderzeichen '+' hinzu.

SIEHE AUCH
        regexplode(E), regreplace(E), sscanf(E)
