SYNOPSIS #include string regmatch(string text, string pattern) string regmatch(string text, string pattern, int opt) string regmatch(string text, string pattern, int opt, int start) string * regmatch(string text, string pattern, int opt) string * regmatch(string text, string pattern, int opt, int start) DESCRIPTION Match the string against (interpreted according to if given). If is given, it is the start position for the match and must be in the range [0..strlen(text)]. If there is no match, the result is 0. If there is a match, the exact result is determined by the flag RE_MATCH_SUBS: If the flag RE_MATCH_SUBS is not set, the result is the matched expression. If the flag RE_MATCH_SUBS is set, the result is an array of the matched string(s) of the first match. Entry [0] is the full string matching the , following entries are the string segments matching parenthesized subexpressions in . If a particular subexpression didn't have a match, the corresponding array entry will be 0. The last entry in the array will be the new start index in case you want to repeat the match on the remaining parts of the string. This new index is usually equal the length of the match, but at least one higher than the original start index. EXAMPLES regmatch("abcdefcdf", "cd") -> "cd" regmatch("abcdefcdf", "cd(e)") -> "cde" regmatch("abcdefcdf", "cd", RE_MATCH_SUBS) -> ({ "cd" }) regmatch("abcdefcdf", "cd(e)", RE_MATCH_SUBS) -> ({ "cde", "e" }) HISTORY Introduced in LDMud 3.3.198. Modified in 3.3.214 to return 0 for non-matches, and to take and return a start position. Since 3.5.0 a error is raised if RE_PCRE is specified in , but the driver lacks PCRE support. SEE ALSO regexplode(E), regreplace(E), regexp(E), regexp_package(E), regexp(C)