{
  "product": "Specification (reference)",
  "title": "Regular Expression Engine",
  "summary": "Pattern matching with stated semantics and no catastrophic surprises.",
  "category": "engines",
  "entries": [
    {
      "path": [
        "AI",
        "Syntax",
        "Literals, character classes and predefined classes"
      ],
      "value": "\\d \\w \\s",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Syntax",
        "Quantifiers, greedy and lazy"
      ],
      "value": "* + ? {n,m} and ?",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Syntax",
        "Alternation and grouping"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Syntax",
        "Anchors and word boundaries"
      ],
      "value": "^ $ \\b",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Groups",
        "Capturing and non-capturing groups"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Groups",
        "Named capture groups"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Groups",
        "Backreferences"
      ],
      "value": "",
      "status": "yes",
      "note": "or a documented refusal, for linear-time engines"
    },
    {
      "path": [
        "AI",
        "Lookaround",
        "Lookahead and lookbehind, positive and negative"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Flags",
        "Case-insensitive, multiline, dot-all, global, unicode"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Unicode",
        "Code-point semantics, not code units"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Unicode",
        "Unicode property escapes"
      ],
      "value": "\\p{L}",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "API",
        "Test, match, match-all, replace and split"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "API",
        "Replacement with group references and a function"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "API",
        "Match position and captured spans"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Safety",
        "Backtracking bound or a linear-time algorithm"
      ],
      "value": "",
      "status": "yes",
      "note": "ReDoS is a documented concern"
    },
    {
      "path": [
        "AI",
        "Safety",
        "Compilation errors report the offending position"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Performance",
        "Compiled patterns cached and reusable"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    }
  ]
}
