Research
On the Complexity of the Matching Problem of Regular Expressions with Backreferences
arXiv:2605.07289v1 Announce Type: cross Abstract: ReDoS is a well-known type of algorithmic complexity attack, where an adversary supplies maliciously crafted strings to a regular expression matching
arXiv:2605.07289v1 Announce Type: cross Abstract: ReDoS is a well-known type of algorithmic complexity attack, where an adversary supplies maliciously crafted strings to a regular expression matching engine, aiming to exhaust computational resources of systems. Even quadratic-time behavior in matching engines has been exploited in successful attacks, as exemplified by major outages at Stack Overflow (2016) and Cloudflare (2019). These incidents motivate a fundamental question: Is it possible to construct matching engines that are provably efficient, running in (near-)linear time in the length of the input string? For classical regular expressions (REGEX), Thompson's construction yields a linear-time algorithm. However, practical engines support powerful features such as backreferences, which strictly extend the expressive power of REGEX but unfortunately increase the risk of ReDoS attacks. This paper investigates the fine-grained complexity of the string matching problem for regular expressions with backreferences (REWBs). Specifically, we consider r-use k-REWBs. On the hardness side, we show that the string matching problem for k-REWBs cannot be solved in O(n^{2k-epsilon}) time for any epsilon > 0 under SETH. We also prove that this problem is extbf{W[2]}-hard when parameterized by the length of the REWB expression, strengthening the previous extbf{W[1]}-hardness. Moreover, we prove that this problem for 2-use 2-REWBs cannot be solved in n^{1+o(1)} time unless the triangle detection problem can be solved in that time. On the algorithmic side, we present an O(n log^2 n)-time algorithm for 1-use REWBs, which significantly improves upon the recent O(n^2)-time algorithm by Nogami and Terauchi (MFCS, 2025). Our algorithm employs several techniques including suffix trees, transition monoids of REGEXes, factorization forest data structures, and periodicity of strings.
Source: arXiv cs.CL | 2026-05-11