xref: /netbsd-src/tests/lib/libc/regex/README (revision 17f9a364e668e2a515980aeea268264bdfd1c52d)
1*17f9a364Spgoyetteregular expression test set
2*17f9a364SpgoyetteLines are at least three fields, separated by one or more tabs.  "" stands
3*17f9a364Spgoyettefor an empty field.  First field is an RE.  Second field is flags.  If
4*17f9a364SpgoyetteC flag given, regcomp() is expected to fail, and the third field is the
5*17f9a364Spgoyetteerror name (minus the leading REG_).
6*17f9a364Spgoyette
7*17f9a364SpgoyetteOtherwise it is expected to succeed, and the third field is the string to
8*17f9a364Spgoyettetry matching it against.  If there is no fourth field, the match is
9*17f9a364Spgoyetteexpected to fail.  If there is a fourth field, it is the substring that
10*17f9a364Spgoyettethe RE is expected to match.  If there is a fifth field, it is a comma-
11*17f9a364Spgoyetteseparated list of what the subexpressions should match, with - indicating
12*17f9a364Spgoyetteno match for that one.  In both the fourth and fifth fields, a (sub)field
13*17f9a364Spgoyettestarting with @ indicates that the (sub)expression is expected to match
14*17f9a364Spgoyettea null string followed by the stuff after the @; this provides a way to
15*17f9a364Spgoyettetest where null strings match.  The character `N' in REs and strings
16*17f9a364Spgoyetteis newline, `S' is space, `T' is tab, `Z' is NUL.
17*17f9a364Spgoyette
18*17f9a364SpgoyetteThe full list of flags:
19*17f9a364Spgoyette  -	placeholder, does nothing
20*17f9a364Spgoyette  b	RE is a BRE, not an ERE
21*17f9a364Spgoyette  &	try it as both an ERE and a BRE
22*17f9a364Spgoyette  C	regcomp() error expected, third field is error name
23*17f9a364Spgoyette  i	REG_ICASE
24*17f9a364Spgoyette  m	("mundane") REG_NOSPEC
25*17f9a364Spgoyette  s	REG_NOSUB (not really testable)
26*17f9a364Spgoyette  n	REG_NEWLINE
27*17f9a364Spgoyette  ^	REG_NOTBOL
28*17f9a364Spgoyette  $	REG_NOTEOL
29*17f9a364Spgoyette  #	REG_STARTEND (see below)
30*17f9a364Spgoyette  p	REG_PEND
31*17f9a364Spgoyette
32*17f9a364SpgoyetteFor REG_STARTEND, the start/end offsets are those of the substring
33*17f9a364Spgoyetteenclosed in ().
34