If not set, then the GNU regex operators are recognized. */
#define RE_NO_GNU_OPS (RE_NO_POSIX_BACKTRACKING << 1)
+/* If this bit is set, then *?, +? and ?? match non greedily. */
+#define RE_FRUGAL (RE_NO_GNU_OPS << 1)
+
+/* If this bit is set, then (?:...) is treated as a shy group. */
+#define RE_SHY_GROUPS (RE_FRUGAL << 1)
+
+/* If this bit is set, ^ and $ only match at beg/end of buffer. */
+#define RE_NO_NEWLINE_ANCHOR (RE_SHY_GROUPS << 1)
+
/* If this bit is set, turn on internal regex debugging.
If not set, and debugging was on, turn it off.
This only works if regex.c is compiled -DDEBUG.
We define this bit always, so that all that's needed to turn on
debugging is to recompile regex.c; the calling code can always have
this bit set, and it won't affect anything in the normal case. */
-#define RE_DEBUG (RE_NO_GNU_OPS << 1)
-
-/* If this bit is set, then *?, +? and ?? match non greedily. */
-#define RE_FRUGAL (RE_DEBUG << 1)
-
-/* If this bit is set, then (?:...) is treated as a shy group. */
-#define RE_SHY_GROUPS (RE_FRUGAL << 1)
+#define RE_DEBUG (RE_NO_NEWLINE_ANCHOR << 1)
/* This global variable defines the particular regexp syntax to use (for
some interfaces). When a regexp is compiled, the syntax used is
unsigned char *buffer;
/* Number of bytes to which `buffer' points. */
- unsigned long int allocated;
+ size_t allocated;
/* Number of bytes actually used in `buffer'. */
- unsigned long int used;
+ size_t used;
/* Syntax setting with which the pattern was compiled. */
reg_syntax_t syntax;
/* Similarly for an end-of-line anchor. */
unsigned not_eol : 1;
- /* If true, an anchor at a newline matches. */
- unsigned newline_anchor : 1;
-
#ifdef emacs
/* If true, multi-byte form in the `buffer' should be recognized as a
multibyte character. */
# endif
# endif
#endif
-/* For now unconditionally define __restrict_arr to expand to nothing.
+/* For now conditionally define __restrict_arr to expand to nothing.
Ideally we would have a test for the compiler which allows defining
it to restrict. */
-#define __restrict_arr
+#ifndef __restrict_arr
+# define __restrict_arr
+#endif
/* POSIX compatibility. */
extern int regcomp _RE_ARGS ((regex_t *__restrict __preg,