]> Projects (at) Tadryanom (dot) Me - AdrOS.git/commit
feat: Phase 3 — POSIX regex engine (regcomp/regexec/regfree/regerror)
authorTulio A M Mendes <[email protected]>
Sat, 14 Mar 2026 08:01:02 +0000 (05:01 -0300)
committerTulio A M Mendes <[email protected]>
Sat, 14 Mar 2026 08:01:02 +0000 (05:01 -0300)
commit91dba62d192d6c19f949534c4abde65698e98fb6
tree29d58343d85459df31c4d1bb1df9be143306cb02
parent9973ac67819a59249977ab4a6cb4b08357614b52
feat: Phase 3 — POSIX regex engine (regcomp/regexec/regfree/regerror)

Add minimal POSIX regex engine to ulibc:
- regex.h: Full POSIX regex API (regex_t, regmatch_t, REG_EXTENDED,
  REG_ICASE, REG_NEWLINE, REG_NOSUB, error codes)
- regex.c: Recursive backtracking matcher supporting:
  - BRE and ERE modes
  - Literals, . (any), ^ (BOL), $ (EOL)
  - Character classes [abc], [^abc], ranges [a-z]
  - POSIX classes [:alpha:] [:digit:] [:alnum:] [:space:] [:upper:]
    [:lower:] [:print:] [:graph:] [:cntrl:] [:punct:] [:xdigit:] [:blank:]
  - Quantifiers: * (BRE/ERE), + ? (ERE only)
  - Alternation: | (ERE), \| (BRE)
  - Grouping: () (ERE), \(\) (BRE)
  - Submatch capture via regmatch_t
  - Case-insensitive matching (REG_ICASE)
  - regerror() with human-readable error messages

Tests: 101/101 smoke, 64/64 host utils, cppcheck clean
user/ulibc/include/regex.h [new file with mode: 0644]
user/ulibc/src/regex.c [new file with mode: 0644]