SYNOPSIS
        int strrstr(string str, string muster);
        int strrstr(string str, string muster, int pos);

BESCHREIBUNG:
        Liefert den Index des ersten Auftretens von <muster> im String <str>,
        ausgehend von der Position <pos> her rueckwaerts gesucht. Wird <pos>
        nicht angegeben, wird als Standard -1 gesetzt, was dem Ende von <str>
        entspricht. Mit anderen Worten: die Funktion liefert den Index des
        letzten Auftretens von <muster> vor <pos>.

        Der Index, der zurueck gegeben wird, ist relativ zum Beginn des
        Strings <str>.

        Wenn <muster> nicht in <str> gefunden wird, wird -1 zurueck gegeben.

        Wenn <pos> negativ ist, bezeichnet <pos> den Index vom Ende des
        Strings aus gezaehlt. Dabei wird die Suche aber dennoch rueckwaerts
        im String <str> durchgefuehrt.

AENDERUNGEN
        Eingefuehrt in LDMud 3.2.10

SIEHE AUCH
        strstr(E), strlen(E), sscanf(E), sprintf(E), explode(E)
