SYNOPSIS
        string regreplace(string txt, string pattern,
                          closure|string replacepattern, int flags)

DESCRIPTION
        This function looks through txt looking for the regular
        expression pattern. If it finds it, it replaces it by the
        replacepattern.

        The replacepattern can be a constant string, or a closure taking
        the matched substring and the position at which it was found
        as arguments and returning the replacement pattern string.

        \1 - \9 	replaced with the matched pattern in
                        the first - the ninth pair of ()
        &               replaced with the whole matched pattern
        \&              replaced with &
        \\              replaced with \
                        (required for multiple \ and in combination
                         with the listed patterns; you don't need
                         to escape every single \)

        The flag is a bitmask, where bit 0 specifies
        that the search and replace should repeat as often as the
        pattern matches, and bit 1 (mask 2) specifies if the regular
        expressions are 'ex' compatible or not. The function returns
        the modified string (or the original if it wasn't modified).

        The function behaves like the s/pattern/replacepattern/flags
        in editors as ed/vi or sed. The power of this function lies in
        replacing variable strings (as opposed to regexplode, where
        you can explode by regular expression, but not implode...)


EXAMPLES
        string msgin;

        /* Checks msgin for the string 'tells you: ' and all following
         * characters and encloses those characters by <underline>
         * and </underline>. global.
         */
        msgin = regreplace(msgin, "tells you: (.*)",
                 "tells you: <underline>\\1</underline>", 1);

        /* replaces all <underline> html tags by the vt100 escape
         * sequence for underline.
         */
        txt = regreplace(txt, "<underline>", "<ESC>[5m", 1);

        /* Put the word HOUSE into lower case. */
        txt = regreplace(txt, "HOUSE", #'lower_case, 1);


HISTORY
        Introduced in 3.2.1@125.
        The use of a closure as replacepattern was introduced in
        LDMud 3.2.9.

AUTHOR
        Marcus@TAPPMud contributed the original efun and man page

SEE ALSO
        regexp(E), regexplode(E), sscanf(E), trim(E)
