+#undef FUNC_NAME
+
+SCM_DEFINE (scm_make_regexp, "make-regexp", 1, 0, 1,
+ (SCM pat, SCM flags),
+ "Compile the regular expression described by @var{str}, and return the\n"
+ "compiled regexp structure. If @var{str} does not describe a legal\n"
+ "regular expression, @code{make-regexp} throws a\n"
+ "@code{regular-expression-syntax} error.\n\n"
+ "The @var{flag} arguments change the behavior of the compiled regexp.\n"
+ "The following flags may be supplied:\n\n"
+ "@table @code\n"
+ "@item regexp/icase\n"
+ "Consider uppercase and lowercase letters to be the same when matching.\n\n"
+ "@item regexp/newline\n"
+ "If a newline appears in the target string, then permit the @samp{^} and\n"
+ "@samp{$} operators to match immediately after or immediately before the\n"
+ "newline, respectively. Also, the @samp{.} and @samp{[^...]} operators\n"
+ "will never match a newline character. The intent of this flag is to\n"
+ "treat the target string as a buffer containing many lines of text, and\n"
+ "the regular expression as a pattern that may match a single one of those\n"
+ "lines.\n\n"
+ "@item regexp/basic\n"
+ "Compile a basic (``obsolete'') regexp instead of the extended\n"
+ "(``modern'') regexps that are the default. Basic regexps do not\n"
+ "consider @samp{|}, @samp{+} or @samp{?} to be special characters, and\n"
+ "require the @samp{@{...@}} and @samp{(...)} metacharacters to be\n"
+ "backslash-escaped (@pxref{Backslash Escapes}). There are several other\n"
+ "differences between basic and extended regular expressions, but these\n"
+ "are the most significant.\n\n"
+ "@item regexp/extended\n"
+ "Compile an extended regular expression rather than a basic regexp. This\n"
+ "is the default behavior; this flag will not usually be needed. If a\n"
+ "call to @code{make-regexp} includes both @code{regexp/basic} and\n"
+ "@code{regexp/extended} flags, the one which comes last will override\n"
+ "the earlier one.\n"
+ "@end table\n")
+#define FUNC_NAME s_scm_make_regexp