--- a/ChengsongTanPhdThesis/Chapters/RelatedWork.tex Thu Dec 08 00:19:56 2022 +0000
+++ b/ChengsongTanPhdThesis/Chapters/RelatedWork.tex Sat Dec 17 22:39:55 2022 +0000
@@ -119,17 +119,14 @@
But having the ordering relation taking regular expression as parameters
causes the transitivity of their ordering to not go through.
-
-When a regular expression engine does not behave as intended (for example,
-getting excruciatingly slow on
-a relatively simple regex pattern $(a^*)^*b$
-and a string $a\ldots a$ that is obviously
-not part of that regex)
-programmers usually try to rewrite the regex to some equivalent form.
-
+When faced with catastrophic backtracking,
+sometimes programmers
+have to rewrite their regexes in an ad hoc fashion.
+Knowing which patterns should be avoided
+can be helpful.
+\subsection{Static Analysis of Evil Regex Patterns}
or they try to avoid the possibly problematic patterns completely,
for which many false positives exist\parencite{Davis18}.
-\subsection{Static Analysis of Evil Regex Patterns}
Animated tools to "debug" regular expressions such as
\parencite{regexploit2021} \parencite{regex101} are also popular.
We are also aware of static analysis work on regular expressions that