Files
jason.woltje 4ff4f44c98 lead: commit researcher's untracked evidence (1406 files: queue-101 queue-105 queue-128 queue-134 queue-143 queue-148 queue-183 queue-228)
Unclaimed files left in the canonical checkout. Inventory: canonical-cleanup-inventory.md (commit-as-evidence groups). detect-secrets scan clean on 2026-11-02: hits are sha256 pins, git object ids, test sentinels already in tracked tests and unit-file lines.
2026-11-02 15:05:14 -06:00

5.3 KiB

Stack verdict for every regex in markdown-preview.js (sage-0621)

Module /mnt/storage/scratch/researcher/q148r3b/packages/webui/src/public/markdown-preview.js. Each regex is taken from the module's source text (it must occur there), then run alone on its worst shapes at 4096 KiB (4194304 characters), one process per regex and shape, timeout 60 s. A verdict is "returns" or "RangeError". Column "quantified group or backreference" is a text test on the literal: a ) followed by *, + or {, or a \1-style backreference. A )? is a group that matches at most once and is not counted.

line(s) regex quantified group or backreference shape verdict ms
20 /[!-/:-@[-{-~]/` no letters returns 4.2
20 /[!-/:-@[-{-~]/` no punct returns 0.4
24 /^( {0,3})({3,}|~{3,})(.*)$/s` no backticks returns 2.7
24 /^( {0,3})({3,}|~{3,})(.*)$/s` no tildes returns 2.5
24 /^( {0,3})({3,}|~{3,})(.*)$/s` no backticks + x returns 2.4
24 /^( {0,3})({3,}|~{3,})(.*)$/s` no backticks + separator returns 2.9
24 /^( {0,3})({3,}|~{3,})(.*)$/s` no fence + blanks returns 2
25 /^ {0,3}(#{1,6})(?:[ \t]+(.*))?$/s no hashes returns 0.4
25 /^ {0,3}(#{1,6})(?:[ \t]+(.*))?$/s no hash + blanks + x returns 2.8
25 /^ {0,3}(#{1,6})(?:[ \t]+(.*))?$/s no hash + blanks returns 3
25 /^ {0,3}(#{1,6})(?:[ \t]+(.*))?$/s no hash + blanks + separator returns 3.4
26 /^ {0,3}(=+|-+)[ \t]*$/ no equals returns 2.4
26 /^ {0,3}(=+|-+)[ \t]*$/ no dashes returns 2.5
26 /^ {0,3}(=+|-+)[ \t]*$/ no equals + blanks + x returns 4.8
26 /^ {0,3}(=+|-+)[ \t]*$/ no dash + tabs + x returns 4.3
41 /^ {0,3}> ?/ no quotes returns 0.9
41 /^ {0,3}> ?/ no quote + blanks returns 0.8
41 /^ {0,3}> ?/ no blanks + quote returns 0.8
42 /^( {0,3})([-+*]|\d{1,9}[.)])([ \t]+|$)(.*)$/s no dash + blanks returns 3
42 /^( {0,3})([-+*]|\d{1,9}[.)])([ \t]+|$)(.*)$/s no dash + blanks + x returns 3
42 /^( {0,3})([-+*]|\d{1,9}[.)])([ \t]+|$)(.*)$/s no digits + dot returns 0.4
42 /^( {0,3})([-+*]|\d{1,9}[.)])([ \t]+|$)(.*)$/s no dash + tabs + separator returns 3
42 /^( {0,3})([-+*]|\d{1,9}[.)])([ \t]+|$)(.*)$/s no dash + blanks + separator returns 3.5
66 /[\u0000-\u0020\u007f-\u009f\\\u200b-\u200f\u2028-\u202e\u2066-\u2069\ufeff]/ no letters returns 3.5
66 /[\u0000-\u0020\u007f-\u009f\\\u200b-\u200f\u2028-\u202e\u2066-\u2069\ufeff]/ no letters + separator returns 4.1
67 /^[A-Za-z][A-Za-z0-9+.-]*:/ no letters returns 5.4
67 /^[A-Za-z][A-Za-z0-9+.-]*:/ no letters + colon returns 3.3
67 /^https?:\/\/[^/?#]/i no h returns 0.8
67 /^https?:\/\/[^/?#]/i no http + letters returns 0.4
112 /[ \t\n]/ no letters returns 1.2
118 /[\n<]/ no letters returns 1.3
128, 162, 212 /\s/ no letters returns 1.2
140 /\\([!-/:-@[-{-~])/g` no escaped punct returns 397.1
140 /\\([!-/:-@[-{-~])/g` no backslashes returns 403.5
140 /\\([!-/:-@[-{-~])/g` no escaped letters returns 3.9
162, 212 /[A-Za-z0-9]/ no punct returns 3.8
162, 212 /[A-Za-z0-9]/ no letters returns 0.9
181 /\n/g no newlines returns 169.5
181 /\n/g no letters returns 1
234 /^(+|~+)[ \t]*$/` no backticks returns 2.3
234 /^(+|~+)[ \t]*$/` no backticks + blank returns 2
234 /^(+|~+)[ \t]*$/` no backticks + x returns 19.1
234 /^(+|~+)[ \t]*$/` no backtick + blanks + x returns 4.7
234 /^(+|~+)[ \t]*$/` no tildes + x returns 18.1
330 /\r\n?/g no CR returns 148.1
330 /\r\n?/g no CRLF returns 111.2
330 /\r\n?/g no letters returns 2.5
332 /^[ \t]+/ no blanks returns 2.9
332 /^[ \t]+/ no blanks + x returns 2.9
332 /^[ \t]+/ no tabs returns 2.5
332 /^[ \t]+/ no letters returns 0.8
332 /\t/g no tabs returns 176.7
332 /\t/g no letters returns 1

Control: the regex round 3 removed (it must not be in the module, and it must fail here)

line(s) in module regex quantified group or backreference shape verdict ms
none /^ {0,3}([-*_])(?:[ \t]*\1){2,}[ \t]*$/ yes dashes RangeError 19.1
none /^ {0,3}([-*_])(?:[ \t]*\1){2,}[ \t]*$/ yes dashes + blank RangeError 18.9
none /^ {0,3}([-*_])(?:[ \t]*\1){2,}[ \t]*$/ yes spaced dashes RangeError 20.5
none /^ {0,3}([-*_])(?:[ \t]*\1){2,}[ \t]*$/ yes spaced stars RangeError 17.9
none /^ {0,3}([-*_])(?:[ \t]*\1){2,}[ \t]*$/ yes underscores RangeError 19.3

53 regex and shape runs on the module's regexes: 0 not "returns". Regexes missing from the module's source: 0. Regexes in the module with a quantified group or backreference: 0. The removed regex is not in the module and fails 5 of 5 control shapes.

Regex literals found by a scan of the module source that are not in the table above: 0.