A known-bad regex is useful evidence, but putting it directly in the test process can hang the runner before the timeout assertion fires.
The boundary I am using:
run each adversarial case in a fresh worker thread or child process
let the parent own a hard timeout and terminate the child
keep semantic-parity fixtures separate from timing guards







