This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
locale.c: Don't use numeric unless LC_NUMERIC
[perl5.git] / regcomp.sym
index 604163b..f545078 100644 (file)
 # Note that the order in this file is important.
 #
 # Format for first section: 
-# NAME \s+ TYPE, arg-description [num-args] [flags] [longjump-len] ; DESCRIPTION
-#   flag <S> means is REGNODE_SIMPLE; flag <V> means is REGNODE_VARIES
+# NAME \s+ TYPE, arg-description [num-args] [flags] [longjump] ; DESCRIPTION
+#   flag <S> means is REGNODE_SIMPLE; flag <V> means is REGNODE_VARIES; <.> is
+#   a placeholder
+#   longjump is 1 if the (first) argument holds the next offset.
 #
 #
 # run perl regen.pl after editing this file
@@ -56,11 +58,12 @@ NBOUNDA     NBOUND,     no        ; Match "" betweeen any \w\w or \W\W, where \w
 #* [Special] alternatives:
 REG_ANY     REG_ANY,    no 0 S    ; Match any one character (except newline).
 SANY        REG_ANY,    no 0 S    ; Match any one character.
-ANYOF       ANYOF,      sv 1 S    ; Match character in (or not in) this class, single char match only
-ANYOFD      ANYOF,      sv 1 S    ; Like ANYOF, but /d is in effect
-ANYOFL      ANYOF,      sv 1 S    ; Like ANYOF, but /l is in effect
-ANYOFPOSIXL ANYOF,      sv 1 S    ; Like ANYOFL, but matches [[:posix:]] classes
+ANYOF       ANYOF,      sv charclass S    ; Match character in (or not in) this class, single char match only
+ANYOFD      ANYOF,      sv charclass S    ; Like ANYOF, but /d is in effect
+ANYOFL      ANYOF,      sv charclass S    ; Like ANYOF, but /l is in effect
+ANYOFPOSIXL ANYOF,      sv charclass_posixl S    ; Like ANYOFL, but matches [[:posix:]] classes
 ANYOFM      ANYOFM      byte 1 S  ; Like ANYOF, but matches an invariant byte as determined by the mask and arg
+NANYOFM     ANYOFM      byte 1 S  ; complement of ANYOFM
 
 #* POSIX Character Classes:
 # Order of the below is important.  See ordering comment above.
@@ -108,6 +111,11 @@ EXACTFU_SS  EXACT,      str          ; Match this string (folded iff in UTF-8, length i
 EXACTFLU8   EXACT,      str      ; Rare circumstances: like EXACTFU, but is under /l, UTF-8, folded, and everything in it is above 255.
 EXACTFAA_NO_TRIE  EXACT, str     ; Match this string (which is not trie-able; not guaranteed to be folded) using /iaa rules (w/len).
 
+EXACT_ONLY8 EXACT,      str       ; Like EXACT, but no strings that aren't in UTF-8 can match
+EXACTFU_ONLY8 EXACT,    str       ; Like EXACTFU, but no strings that aren't in UTF-8 can match
+# One could add EXACTFAA8 and and something that has the same effect for /l,
+# but these would be extremely uncommon
+
 #*Do nothing types
 
 NOTHING     NOTHING,    no        ; Match empty string.
@@ -162,8 +170,8 @@ LONGJMP     LONGJMP,    off 1 . 1 ; Jump far away.
 BRANCHJ     BRANCHJ,    off 1 V 1 ; BRANCH with long offset.
 
 #*Special Case Regops
-IFMATCH     BRANCHJ,    off 1 . 2 ; Succeeds if the following matches.
-UNLESSM     BRANCHJ,    off 1 . 2 ; Fails if the following matches.
+IFMATCH     BRANCHJ,    off 1 . 1 ; Succeeds if the following matches.
+UNLESSM     BRANCHJ,    off 1 . 1 ; Fails if the following matches.
 SUSPEND     BRANCHJ,    off 1 V 1 ; "Independent" sub-RE.
 IFTHEN      BRANCHJ,    off 1 V 1 ; Switch, should be preceded by switcher.
 GROUPP      GROUPP,     num 1     ; Whether the group matched.