sun: static
;
boost-install boost_regex ;
diff --git a/doc/further_info.qbk b/doc/further_info.qbk
index 08c5d0ff..fb649743 100644
--- a/doc/further_info.qbk
+++ b/doc/further_info.qbk
@@ -8,9 +8,8 @@
[section:futher References and Further Information]
-Short tutorials on regular expressions can be
-[@http://etext.lib.virginia.edu/helpsheets/regex.html found here] and
-[@http://www.linuxpcug.org/lessons/regexp.html here].
+The main Perl regular expression tutorial can be found [@http://perldoc.perl.org/perlretut.html here],
+there's a much shorter summary of the main features [@https://www.cs.tut.fi/~jkorpela/perl/regexp.html here].
The main book on regular expressions is
[@http://www.oreilly.com/catalog/regex/ Mastering Regular Expressions, published by O'Reilly].
diff --git a/doc/history.qbk b/doc/history.qbk
index 4a28dab7..85319026 100644
--- a/doc/history.qbk
+++ b/doc/history.qbk
@@ -15,6 +15,11 @@ Currently open issues can be viewed [@https://svn.boost.org/trac/boost/query?sta
All issues including closed ones can be viewed [@https://svn.boost.org/trac/boost/query?status=assigned&status=closed&status=new&status=reopened&component=regex&order=priority&col=id&col=summary&col=status&col=type&col=milestone&col=component here].
+[h4 Boost.Regex-5.1.3 (Boost-1.64.0)]
+
+* Compiling with Oracle C++ toolset is no longer restricted to static linking.
+* Big effort to de-fuzz the library using libFuzzer and fix identified issues, see: [@https://svn.boost.org/trac/boost/ticket/12818 #12818].
+
[h4 Boost.Regex-5.1.2 (Boost-1.62.0)]
diff --git a/doc/html/boost_regex/background_information.html b/doc/html/boost_regex/background_information.html
index 1e172aa6..999fc861 100644
--- a/doc/html/boost_regex/background_information.html
+++ b/doc/html/boost_regex/background_information.html
@@ -4,8 +4,8 @@
Background Information
-
-
+
+
diff --git a/doc/html/boost_regex/background_information/acknowledgements.html b/doc/html/boost_regex/background_information/acknowledgements.html
index d556d29b..20579eea 100644
--- a/doc/html/boost_regex/background_information/acknowledgements.html
+++ b/doc/html/boost_regex/background_information/acknowledgements.html
@@ -4,7 +4,7 @@
Acknowledgements
-
+
diff --git a/doc/html/boost_regex/background_information/examples.html b/doc/html/boost_regex/background_information/examples.html
index 21fbf7bd..26da04f5 100644
--- a/doc/html/boost_regex/background_information/examples.html
+++ b/doc/html/boost_regex/background_information/examples.html
@@ -4,7 +4,7 @@
Test and Example Programs
-
+
diff --git a/doc/html/boost_regex/background_information/faq.html b/doc/html/boost_regex/background_information/faq.html
index 4cf59034..edcf2a1a 100644
--- a/doc/html/boost_regex/background_information/faq.html
+++ b/doc/html/boost_regex/background_information/faq.html
@@ -4,7 +4,7 @@
FAQ
-
+
diff --git a/doc/html/boost_regex/background_information/futher.html b/doc/html/boost_regex/background_information/futher.html
index f844e77c..dcdda55f 100644
--- a/doc/html/boost_regex/background_information/futher.html
+++ b/doc/html/boost_regex/background_information/futher.html
@@ -4,7 +4,7 @@
References and Further Information
-
+
@@ -28,8 +28,8 @@
and Further Information
- Short tutorials on regular expressions can be found
- here and here .
+ The main Perl regular expression tutorial can be found here ,
+ there's a much shorter summary of the main features here .
The main book on regular expressions is Mastering
diff --git a/doc/html/boost_regex/background_information/headers.html b/doc/html/boost_regex/background_information/headers.html
index 1bad39bd..6f52503f 100644
--- a/doc/html/boost_regex/background_information/headers.html
+++ b/doc/html/boost_regex/background_information/headers.html
@@ -4,7 +4,7 @@
Headers
-
+
diff --git a/doc/html/boost_regex/background_information/history.html b/doc/html/boost_regex/background_information/history.html
index ad9269b2..aff74cff 100644
--- a/doc/html/boost_regex/background_information/history.html
+++ b/doc/html/boost_regex/background_information/history.html
@@ -4,7 +4,7 @@
History
-
+
@@ -37,6 +37,20 @@
+
+
+ Compiling with Oracle C++ toolset is no longer restricted to static linking.
+
+
+ Big effort to de-fuzz the library using libFuzzer and fix identified
+ issues, see: #12818 .
+
+
+
@@ -57,7 +71,7 @@
@@ -65,7 +79,7 @@
Change to lockfree implementation of memory cache, see PR#23 .
@@ -88,7 +102,7 @@
@@ -121,7 +135,7 @@
@@ -154,14 +168,14 @@
Fixed issue #8569 .
@@ -169,7 +183,7 @@
#7644 .
@@ -179,7 +193,7 @@
#6346 .
@@ -188,7 +202,7 @@
expression.
@@ -198,7 +212,7 @@
#5736 .
@@ -210,7 +224,7 @@
#5504 .
@@ -228,7 +242,7 @@
#3890
@@ -264,7 +278,7 @@
branch resets and recursive regular expressions.
Fixed bug in partial matches of bounded repeats of '.'.
diff --git a/doc/html/boost_regex/background_information/locale.html b/doc/html/boost_regex/background_information/locale.html
index 8d7f64b5..e3f7e917 100644
--- a/doc/html/boost_regex/background_information/locale.html
+++ b/doc/html/boost_regex/background_information/locale.html
@@ -4,7 +4,7 @@
Localization
-
+
diff --git a/doc/html/boost_regex/background_information/performance.html b/doc/html/boost_regex/background_information/performance.html
index dc5d626f..bdaa1b0d 100644
--- a/doc/html/boost_regex/background_information/performance.html
+++ b/doc/html/boost_regex/background_information/performance.html
@@ -4,7 +4,7 @@
Performance
-
+
diff --git a/doc/html/boost_regex/background_information/performance/section_Testing_Perl_searches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_0_.html b/doc/html/boost_regex/background_information/performance/section_Testing_Perl_searches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_0_.html
index 3e9f4e92..a14f311a 100644
--- a/doc/html/boost_regex/background_information/performance/section_Testing_Perl_searches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_0_.html
+++ b/doc/html/boost_regex/background_information/performance/section_Testing_Perl_searches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_0_.html
@@ -4,7 +4,7 @@
Testing Perl searches (platform = Windows x64, compiler = Microsoft Visual C++ version 14.0)
-
+
diff --git a/doc/html/boost_regex/background_information/performance/section_Testing_Perl_searches_platform_linux_compiler_GNU_C_version_5_1_0_.html b/doc/html/boost_regex/background_information/performance/section_Testing_Perl_searches_platform_linux_compiler_GNU_C_version_5_1_0_.html
index dfcb86ea..0ecd8788 100644
--- a/doc/html/boost_regex/background_information/performance/section_Testing_Perl_searches_platform_linux_compiler_GNU_C_version_5_1_0_.html
+++ b/doc/html/boost_regex/background_information/performance/section_Testing_Perl_searches_platform_linux_compiler_GNU_C_version_5_1_0_.html
@@ -4,7 +4,7 @@
Testing Perl searches (platform = linux, compiler = GNU C++ version 5.1.0)
-
+
diff --git a/doc/html/boost_regex/background_information/performance/section_Testing_leftmost_longest_searches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_0_.html b/doc/html/boost_regex/background_information/performance/section_Testing_leftmost_longest_searches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_0_.html
index 3de31a36..eaf27246 100644
--- a/doc/html/boost_regex/background_information/performance/section_Testing_leftmost_longest_searches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_0_.html
+++ b/doc/html/boost_regex/background_information/performance/section_Testing_leftmost_longest_searches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_0_.html
@@ -4,7 +4,7 @@
Testing leftmost-longest searches (platform = Windows x64, compiler = Microsoft Visual C++ version 14.0)
-
+
diff --git a/doc/html/boost_regex/background_information/performance/section_Testing_leftmost_longest_searches_platform_linux_compiler_GNU_C_version_5_1_0_.html b/doc/html/boost_regex/background_information/performance/section_Testing_leftmost_longest_searches_platform_linux_compiler_GNU_C_version_5_1_0_.html
index 0791ce8f..0e13c032 100644
--- a/doc/html/boost_regex/background_information/performance/section_Testing_leftmost_longest_searches_platform_linux_compiler_GNU_C_version_5_1_0_.html
+++ b/doc/html/boost_regex/background_information/performance/section_Testing_leftmost_longest_searches_platform_linux_compiler_GNU_C_version_5_1_0_.html
@@ -4,7 +4,7 @@
Testing leftmost-longest searches (platform = linux, compiler = GNU C++ version 5.1.0)
-
+
diff --git a/doc/html/boost_regex/background_information/performance/section_Testing_simple_Perl_matches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_0_.html b/doc/html/boost_regex/background_information/performance/section_Testing_simple_Perl_matches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_0_.html
index eac8b8a3..03cffbf3 100644
--- a/doc/html/boost_regex/background_information/performance/section_Testing_simple_Perl_matches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_0_.html
+++ b/doc/html/boost_regex/background_information/performance/section_Testing_simple_Perl_matches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_0_.html
@@ -4,7 +4,7 @@
Testing simple Perl matches (platform = Windows x64, compiler = Microsoft Visual C++ version 14.0)
-
+
diff --git a/doc/html/boost_regex/background_information/performance/section_Testing_simple_Perl_matches_platform_linux_compiler_GNU_C_version_5_1_0_.html b/doc/html/boost_regex/background_information/performance/section_Testing_simple_Perl_matches_platform_linux_compiler_GNU_C_version_5_1_0_.html
index 22f4d6a0..dd36dfc9 100644
--- a/doc/html/boost_regex/background_information/performance/section_Testing_simple_Perl_matches_platform_linux_compiler_GNU_C_version_5_1_0_.html
+++ b/doc/html/boost_regex/background_information/performance/section_Testing_simple_Perl_matches_platform_linux_compiler_GNU_C_version_5_1_0_.html
@@ -4,7 +4,7 @@
Testing simple Perl matches (platform = linux, compiler = GNU C++ version 5.1.0)
-
+
diff --git a/doc/html/boost_regex/background_information/performance/section_Testing_simple_leftmost_longest_matches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_0_.html b/doc/html/boost_regex/background_information/performance/section_Testing_simple_leftmost_longest_matches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_0_.html
index 4566c299..de962160 100644
--- a/doc/html/boost_regex/background_information/performance/section_Testing_simple_leftmost_longest_matches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_0_.html
+++ b/doc/html/boost_regex/background_information/performance/section_Testing_simple_leftmost_longest_matches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_0_.html
@@ -4,7 +4,7 @@
Testing simple leftmost-longest matches (platform = Windows x64, compiler = Microsoft Visual C++ version 14.0)
-
+
diff --git a/doc/html/boost_regex/background_information/performance/section_Testing_simple_leftmost_longest_matches_platform_linux_compiler_GNU_C_version_5_1_0_.html b/doc/html/boost_regex/background_information/performance/section_Testing_simple_leftmost_longest_matches_platform_linux_compiler_GNU_C_version_5_1_0_.html
index 62a24f08..a928332b 100644
--- a/doc/html/boost_regex/background_information/performance/section_Testing_simple_leftmost_longest_matches_platform_linux_compiler_GNU_C_version_5_1_0_.html
+++ b/doc/html/boost_regex/background_information/performance/section_Testing_simple_leftmost_longest_matches_platform_linux_compiler_GNU_C_version_5_1_0_.html
@@ -4,7 +4,7 @@
Testing simple leftmost-longest matches (platform = linux, compiler = GNU C++ version 5.1.0)
-
+
diff --git a/doc/html/boost_regex/background_information/redist.html b/doc/html/boost_regex/background_information/redist.html
index bd2526af..37bdeb16 100644
--- a/doc/html/boost_regex/background_information/redist.html
+++ b/doc/html/boost_regex/background_information/redist.html
@@ -4,7 +4,7 @@
Redistributables
-
+
diff --git a/doc/html/boost_regex/background_information/standards.html b/doc/html/boost_regex/background_information/standards.html
index 16f9a8b4..0624cf15 100644
--- a/doc/html/boost_regex/background_information/standards.html
+++ b/doc/html/boost_regex/background_information/standards.html
@@ -4,7 +4,7 @@
Standards Conformance
-
+
diff --git a/doc/html/boost_regex/background_information/thread_safety.html b/doc/html/boost_regex/background_information/thread_safety.html
index 58b2e7c6..26639f28 100644
--- a/doc/html/boost_regex/background_information/thread_safety.html
+++ b/doc/html/boost_regex/background_information/thread_safety.html
@@ -4,7 +4,7 @@
Thread Safety
-
+
diff --git a/doc/html/boost_regex/captures.html b/doc/html/boost_regex/captures.html
index 6d246daf..717ee405 100644
--- a/doc/html/boost_regex/captures.html
+++ b/doc/html/boost_regex/captures.html
@@ -4,8 +4,8 @@
Understanding Marked Sub-Expressions and Captures
-
-
+
+
diff --git a/doc/html/boost_regex/configuration.html b/doc/html/boost_regex/configuration.html
index 93602102..f4c2093d 100644
--- a/doc/html/boost_regex/configuration.html
+++ b/doc/html/boost_regex/configuration.html
@@ -4,9 +4,9 @@
Configuration
-
-
-
+
+
+
diff --git a/doc/html/boost_regex/configuration/algorithm.html b/doc/html/boost_regex/configuration/algorithm.html
index ef3644fc..e7859ea4 100644
--- a/doc/html/boost_regex/configuration/algorithm.html
+++ b/doc/html/boost_regex/configuration/algorithm.html
@@ -4,7 +4,7 @@
Algorithm Selection
-
+
diff --git a/doc/html/boost_regex/configuration/compiler.html b/doc/html/boost_regex/configuration/compiler.html
index deeaa95d..3dfaa192 100644
--- a/doc/html/boost_regex/configuration/compiler.html
+++ b/doc/html/boost_regex/configuration/compiler.html
@@ -4,7 +4,7 @@
Compiler Setup
-
+
diff --git a/doc/html/boost_regex/configuration/linkage.html b/doc/html/boost_regex/configuration/linkage.html
index 411b3302..3109eba8 100644
--- a/doc/html/boost_regex/configuration/linkage.html
+++ b/doc/html/boost_regex/configuration/linkage.html
@@ -4,7 +4,7 @@
Linkage Options
-
+
diff --git a/doc/html/boost_regex/configuration/locale.html b/doc/html/boost_regex/configuration/locale.html
index 6de8fb4f..896cff8d 100644
--- a/doc/html/boost_regex/configuration/locale.html
+++ b/doc/html/boost_regex/configuration/locale.html
@@ -4,7 +4,7 @@
Locale and traits class selection
-
+
diff --git a/doc/html/boost_regex/configuration/tuning.html b/doc/html/boost_regex/configuration/tuning.html
index 038b2309..5f8d9674 100644
--- a/doc/html/boost_regex/configuration/tuning.html
+++ b/doc/html/boost_regex/configuration/tuning.html
@@ -4,7 +4,7 @@
Algorithm Tuning
-
+
diff --git a/doc/html/boost_regex/format.html b/doc/html/boost_regex/format.html
index d14e9c43..ff2698e6 100644
--- a/doc/html/boost_regex/format.html
+++ b/doc/html/boost_regex/format.html
@@ -4,8 +4,8 @@
Search and Replace Format String Syntax
-
-
+
+
diff --git a/doc/html/boost_regex/format/boost_format_syntax.html b/doc/html/boost_regex/format/boost_format_syntax.html
index 0899e45b..62d8d85d 100644
--- a/doc/html/boost_regex/format/boost_format_syntax.html
+++ b/doc/html/boost_regex/format/boost_format_syntax.html
@@ -4,7 +4,7 @@
Boost-Extended Format String Syntax
-
+
diff --git a/doc/html/boost_regex/format/perl_format.html b/doc/html/boost_regex/format/perl_format.html
index eea0f195..736075c6 100644
--- a/doc/html/boost_regex/format/perl_format.html
+++ b/doc/html/boost_regex/format/perl_format.html
@@ -4,7 +4,7 @@
Perl Format String Syntax
-
+
diff --git a/doc/html/boost_regex/format/sed_format.html b/doc/html/boost_regex/format/sed_format.html
index 47defce0..bb70ce48 100644
--- a/doc/html/boost_regex/format/sed_format.html
+++ b/doc/html/boost_regex/format/sed_format.html
@@ -4,7 +4,7 @@
Sed Format String Syntax
-
+
diff --git a/doc/html/boost_regex/install.html b/doc/html/boost_regex/install.html
index 1278abc1..566707da 100644
--- a/doc/html/boost_regex/install.html
+++ b/doc/html/boost_regex/install.html
@@ -4,8 +4,8 @@
Building and Installing the Library
-
-
+
+
diff --git a/doc/html/boost_regex/introduction_and_overview.html b/doc/html/boost_regex/introduction_and_overview.html
index 7faa27be..0bae9b0e 100644
--- a/doc/html/boost_regex/introduction_and_overview.html
+++ b/doc/html/boost_regex/introduction_and_overview.html
@@ -4,8 +4,8 @@
Introduction and Overview
-
-
+
+
diff --git a/doc/html/boost_regex/partial_matches.html b/doc/html/boost_regex/partial_matches.html
index 906f0273..8106ae82 100644
--- a/doc/html/boost_regex/partial_matches.html
+++ b/doc/html/boost_regex/partial_matches.html
@@ -4,8 +4,8 @@
Partial Matches
-
-
+
+
diff --git a/doc/html/boost_regex/ref.html b/doc/html/boost_regex/ref.html
index 4c3aa040..29d83c72 100644
--- a/doc/html/boost_regex/ref.html
+++ b/doc/html/boost_regex/ref.html
@@ -4,8 +4,8 @@
Reference
-
-
+
+
diff --git a/doc/html/boost_regex/ref/bad_expression.html b/doc/html/boost_regex/ref/bad_expression.html
index 68176767..f3b1546e 100644
--- a/doc/html/boost_regex/ref/bad_expression.html
+++ b/doc/html/boost_regex/ref/bad_expression.html
@@ -4,7 +4,7 @@
bad_expression
-
+
diff --git a/doc/html/boost_regex/ref/basic_regex.html b/doc/html/boost_regex/ref/basic_regex.html
index 263bcd7c..fc68a6ab 100644
--- a/doc/html/boost_regex/ref/basic_regex.html
+++ b/doc/html/boost_regex/ref/basic_regex.html
@@ -4,7 +4,7 @@
basic_regex
-
+
diff --git a/doc/html/boost_regex/ref/concepts.html b/doc/html/boost_regex/ref/concepts.html
index c7b7db34..3c8e9733 100644
--- a/doc/html/boost_regex/ref/concepts.html
+++ b/doc/html/boost_regex/ref/concepts.html
@@ -4,7 +4,7 @@
Concepts
-
+
diff --git a/doc/html/boost_regex/ref/concepts/charT_concept.html b/doc/html/boost_regex/ref/concepts/charT_concept.html
index 5e75799e..f17584c2 100644
--- a/doc/html/boost_regex/ref/concepts/charT_concept.html
+++ b/doc/html/boost_regex/ref/concepts/charT_concept.html
@@ -4,7 +4,7 @@
charT Requirements
-
+
diff --git a/doc/html/boost_regex/ref/concepts/iterator_concepts.html b/doc/html/boost_regex/ref/concepts/iterator_concepts.html
index 22decc09..4892b123 100644
--- a/doc/html/boost_regex/ref/concepts/iterator_concepts.html
+++ b/doc/html/boost_regex/ref/concepts/iterator_concepts.html
@@ -4,7 +4,7 @@
Iterator Requirements
-
+
diff --git a/doc/html/boost_regex/ref/concepts/traits_concept.html b/doc/html/boost_regex/ref/concepts/traits_concept.html
index 067e8876..d8a55839 100644
--- a/doc/html/boost_regex/ref/concepts/traits_concept.html
+++ b/doc/html/boost_regex/ref/concepts/traits_concept.html
@@ -4,7 +4,7 @@
Traits Class Requirements
-
+
diff --git a/doc/html/boost_regex/ref/deprecated_interfaces.html b/doc/html/boost_regex/ref/deprecated_interfaces.html
index c53a9620..7f7d3ac3 100644
--- a/doc/html/boost_regex/ref/deprecated_interfaces.html
+++ b/doc/html/boost_regex/ref/deprecated_interfaces.html
@@ -4,7 +4,7 @@
Deprecated Interfaces
-
+
diff --git a/doc/html/boost_regex/ref/deprecated_interfaces/old_regex.html b/doc/html/boost_regex/ref/deprecated_interfaces/old_regex.html
index 0dd4fa57..0f1dbcab 100644
--- a/doc/html/boost_regex/ref/deprecated_interfaces/old_regex.html
+++ b/doc/html/boost_regex/ref/deprecated_interfaces/old_regex.html
@@ -4,7 +4,7 @@
High Level Class RegEx (Deprecated)
-
+
diff --git a/doc/html/boost_regex/ref/deprecated_interfaces/regex_format.html b/doc/html/boost_regex/ref/deprecated_interfaces/regex_format.html
index 7f42b50a..5db1fe8a 100644
--- a/doc/html/boost_regex/ref/deprecated_interfaces/regex_format.html
+++ b/doc/html/boost_regex/ref/deprecated_interfaces/regex_format.html
@@ -4,7 +4,7 @@
regex_format (Deprecated)
-
+
diff --git a/doc/html/boost_regex/ref/deprecated_interfaces/regex_grep.html b/doc/html/boost_regex/ref/deprecated_interfaces/regex_grep.html
index 9fb13c85..2b01bc42 100644
--- a/doc/html/boost_regex/ref/deprecated_interfaces/regex_grep.html
+++ b/doc/html/boost_regex/ref/deprecated_interfaces/regex_grep.html
@@ -4,7 +4,7 @@
regex_grep (Deprecated)
-
+
diff --git a/doc/html/boost_regex/ref/deprecated_interfaces/regex_split.html b/doc/html/boost_regex/ref/deprecated_interfaces/regex_split.html
index ca1ee00c..ac841db3 100644
--- a/doc/html/boost_regex/ref/deprecated_interfaces/regex_split.html
+++ b/doc/html/boost_regex/ref/deprecated_interfaces/regex_split.html
@@ -4,7 +4,7 @@
regex_split (deprecated)
-
+
diff --git a/doc/html/boost_regex/ref/error_type.html b/doc/html/boost_regex/ref/error_type.html
index 6ce3c6fa..ff5a080a 100644
--- a/doc/html/boost_regex/ref/error_type.html
+++ b/doc/html/boost_regex/ref/error_type.html
@@ -4,7 +4,7 @@
error_type
-
+
diff --git a/doc/html/boost_regex/ref/internal_details.html b/doc/html/boost_regex/ref/internal_details.html
index e139afd5..848bdfad 100644
--- a/doc/html/boost_regex/ref/internal_details.html
+++ b/doc/html/boost_regex/ref/internal_details.html
@@ -4,7 +4,7 @@
Internal Details
-
+
diff --git a/doc/html/boost_regex/ref/internal_details/uni_iter.html b/doc/html/boost_regex/ref/internal_details/uni_iter.html
index 6c3bbd3e..28e6f0c9 100644
--- a/doc/html/boost_regex/ref/internal_details/uni_iter.html
+++ b/doc/html/boost_regex/ref/internal_details/uni_iter.html
@@ -4,7 +4,7 @@
Unicode Iterators
-
+
diff --git a/doc/html/boost_regex/ref/match_flag_type.html b/doc/html/boost_regex/ref/match_flag_type.html
index 3853b4e8..17c6f8d1 100644
--- a/doc/html/boost_regex/ref/match_flag_type.html
+++ b/doc/html/boost_regex/ref/match_flag_type.html
@@ -4,7 +4,7 @@
match_flag_type
-
+
diff --git a/doc/html/boost_regex/ref/match_results.html b/doc/html/boost_regex/ref/match_results.html
index a1c9892d..61c0566e 100644
--- a/doc/html/boost_regex/ref/match_results.html
+++ b/doc/html/boost_regex/ref/match_results.html
@@ -4,7 +4,7 @@
match_results
-
+
diff --git a/doc/html/boost_regex/ref/non_std_strings.html b/doc/html/boost_regex/ref/non_std_strings.html
index a745c25a..43843eb8 100644
--- a/doc/html/boost_regex/ref/non_std_strings.html
+++ b/doc/html/boost_regex/ref/non_std_strings.html
@@ -4,7 +4,7 @@
Interfacing With Non-Standard String Types
-
+
diff --git a/doc/html/boost_regex/ref/non_std_strings/icu.html b/doc/html/boost_regex/ref/non_std_strings/icu.html
index 4d20c767..d91c64f7 100644
--- a/doc/html/boost_regex/ref/non_std_strings/icu.html
+++ b/doc/html/boost_regex/ref/non_std_strings/icu.html
@@ -4,7 +4,7 @@
Working With Unicode and ICU String Types
-
+
diff --git a/doc/html/boost_regex/ref/non_std_strings/icu/intro.html b/doc/html/boost_regex/ref/non_std_strings/icu/intro.html
index 57752e83..a213c920 100644
--- a/doc/html/boost_regex/ref/non_std_strings/icu/intro.html
+++ b/doc/html/boost_regex/ref/non_std_strings/icu/intro.html
@@ -4,7 +4,7 @@
Introduction to using Regex with ICU
-
+
diff --git a/doc/html/boost_regex/ref/non_std_strings/icu/unicode_algo.html b/doc/html/boost_regex/ref/non_std_strings/icu/unicode_algo.html
index 2c25eb53..972cec66 100644
--- a/doc/html/boost_regex/ref/non_std_strings/icu/unicode_algo.html
+++ b/doc/html/boost_regex/ref/non_std_strings/icu/unicode_algo.html
@@ -4,7 +4,7 @@
Unicode Regular Expression Algorithms
-
+
diff --git a/doc/html/boost_regex/ref/non_std_strings/icu/unicode_iter.html b/doc/html/boost_regex/ref/non_std_strings/icu/unicode_iter.html
index 7eb22833..ba64e3b7 100644
--- a/doc/html/boost_regex/ref/non_std_strings/icu/unicode_iter.html
+++ b/doc/html/boost_regex/ref/non_std_strings/icu/unicode_iter.html
@@ -4,7 +4,7 @@
Unicode Aware Regex Iterators
-
+
diff --git a/doc/html/boost_regex/ref/non_std_strings/icu/unicode_types.html b/doc/html/boost_regex/ref/non_std_strings/icu/unicode_types.html
index a11680a2..07e37bf3 100644
--- a/doc/html/boost_regex/ref/non_std_strings/icu/unicode_types.html
+++ b/doc/html/boost_regex/ref/non_std_strings/icu/unicode_types.html
@@ -4,7 +4,7 @@
Unicode regular expression types
-
+
diff --git a/doc/html/boost_regex/ref/non_std_strings/mfc_strings.html b/doc/html/boost_regex/ref/non_std_strings/mfc_strings.html
index 5fe684f4..ea87e6ee 100644
--- a/doc/html/boost_regex/ref/non_std_strings/mfc_strings.html
+++ b/doc/html/boost_regex/ref/non_std_strings/mfc_strings.html
@@ -4,7 +4,7 @@
Using Boost Regex With MFC Strings
-
+
diff --git a/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_algo.html b/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_algo.html
index 1ebd610e..981fbb58 100644
--- a/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_algo.html
+++ b/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_algo.html
@@ -4,7 +4,7 @@
Overloaded Algorithms For MFC String Types
-
+
diff --git a/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_intro.html b/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_intro.html
index 0ac01ece..5041ba75 100644
--- a/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_intro.html
+++ b/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_intro.html
@@ -4,7 +4,7 @@
Introduction to Boost.Regex and MFC Strings
-
+
diff --git a/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_iter.html b/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_iter.html
index da2ae326..5b22208c 100644
--- a/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_iter.html
+++ b/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_iter.html
@@ -4,7 +4,7 @@
Iterating Over the Matches Within An MFC String
-
+
diff --git a/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_regex_create.html b/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_regex_create.html
index 379df5ac..e9e87298 100644
--- a/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_regex_create.html
+++ b/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_regex_create.html
@@ -4,7 +4,7 @@
Regular Expression Creation From an MFC String
-
+
diff --git a/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_regex_types.html b/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_regex_types.html
index a33a912d..049a154c 100644
--- a/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_regex_types.html
+++ b/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_regex_types.html
@@ -4,7 +4,7 @@
Regex Types Used With MFC Strings
-
+
diff --git a/doc/html/boost_regex/ref/posix.html b/doc/html/boost_regex/ref/posix.html
index bc623ec1..929ac244 100644
--- a/doc/html/boost_regex/ref/posix.html
+++ b/doc/html/boost_regex/ref/posix.html
@@ -4,7 +4,7 @@
POSIX Compatible C API's
-
+
diff --git a/doc/html/boost_regex/ref/regex_iterator.html b/doc/html/boost_regex/ref/regex_iterator.html
index 3c78910f..195600c6 100644
--- a/doc/html/boost_regex/ref/regex_iterator.html
+++ b/doc/html/boost_regex/ref/regex_iterator.html
@@ -4,7 +4,7 @@
regex_iterator
-
+
diff --git a/doc/html/boost_regex/ref/regex_match.html b/doc/html/boost_regex/ref/regex_match.html
index 9be2b89a..9e9a7b82 100644
--- a/doc/html/boost_regex/ref/regex_match.html
+++ b/doc/html/boost_regex/ref/regex_match.html
@@ -4,7 +4,7 @@
regex_match
-
+
diff --git a/doc/html/boost_regex/ref/regex_replace.html b/doc/html/boost_regex/ref/regex_replace.html
index b6a8dbb8..61a5237f 100644
--- a/doc/html/boost_regex/ref/regex_replace.html
+++ b/doc/html/boost_regex/ref/regex_replace.html
@@ -4,7 +4,7 @@
regex_replace
-
+
diff --git a/doc/html/boost_regex/ref/regex_search.html b/doc/html/boost_regex/ref/regex_search.html
index 64ebc52c..f10aea59 100644
--- a/doc/html/boost_regex/ref/regex_search.html
+++ b/doc/html/boost_regex/ref/regex_search.html
@@ -4,7 +4,7 @@
regex_search
-
+
diff --git a/doc/html/boost_regex/ref/regex_token_iterator.html b/doc/html/boost_regex/ref/regex_token_iterator.html
index dcdaa119..d3816978 100644
--- a/doc/html/boost_regex/ref/regex_token_iterator.html
+++ b/doc/html/boost_regex/ref/regex_token_iterator.html
@@ -4,7 +4,7 @@
regex_token_iterator
-
+
diff --git a/doc/html/boost_regex/ref/regex_traits.html b/doc/html/boost_regex/ref/regex_traits.html
index beaac1b7..aa809bf7 100644
--- a/doc/html/boost_regex/ref/regex_traits.html
+++ b/doc/html/boost_regex/ref/regex_traits.html
@@ -4,7 +4,7 @@
regex_traits
-
+
diff --git a/doc/html/boost_regex/ref/sub_match.html b/doc/html/boost_regex/ref/sub_match.html
index 548c67c9..049bb0cc 100644
--- a/doc/html/boost_regex/ref/sub_match.html
+++ b/doc/html/boost_regex/ref/sub_match.html
@@ -4,7 +4,7 @@
sub_match
-
+
diff --git a/doc/html/boost_regex/ref/syntax_option_type.html b/doc/html/boost_regex/ref/syntax_option_type.html
index 984b7040..f7f70655 100644
--- a/doc/html/boost_regex/ref/syntax_option_type.html
+++ b/doc/html/boost_regex/ref/syntax_option_type.html
@@ -4,7 +4,7 @@
syntax_option_type
-
+
diff --git a/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_basic.html b/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_basic.html
index ef928aa5..6c898f55 100644
--- a/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_basic.html
+++ b/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_basic.html
@@ -4,7 +4,7 @@
Options for POSIX Basic Regular Expressions
-
+
diff --git a/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_extended.html b/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_extended.html
index f7432fbb..a98ed8ce 100644
--- a/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_extended.html
+++ b/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_extended.html
@@ -4,7 +4,7 @@
Options for POSIX Extended Regular Expressions
-
+
diff --git a/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_literal.html b/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_literal.html
index 57bd20bd..6e952486 100644
--- a/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_literal.html
+++ b/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_literal.html
@@ -4,7 +4,7 @@
Options for Literal Strings
-
+
diff --git a/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_overview.html b/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_overview.html
index ff211032..120bea0d 100644
--- a/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_overview.html
+++ b/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_overview.html
@@ -4,7 +4,7 @@
Overview of syntax_option_type
-
+
diff --git a/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_perl.html b/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_perl.html
index 93c196d8..206ed1e4 100644
--- a/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_perl.html
+++ b/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_perl.html
@@ -4,7 +4,7 @@
Options for Perl Regular Expressions
-
+
diff --git a/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_synopsis.html b/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_synopsis.html
index b21af5f9..0557b4d9 100644
--- a/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_synopsis.html
+++ b/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_synopsis.html
@@ -4,7 +4,7 @@
syntax_option_type Synopsis
-
+
diff --git a/doc/html/boost_regex/syntax.html b/doc/html/boost_regex/syntax.html
index cf557d95..1573d72a 100644
--- a/doc/html/boost_regex/syntax.html
+++ b/doc/html/boost_regex/syntax.html
@@ -4,8 +4,8 @@
Regular Expression Syntax
-
-
+
+
diff --git a/doc/html/boost_regex/syntax/basic_extended.html b/doc/html/boost_regex/syntax/basic_extended.html
index f0055f71..9582a3e3 100644
--- a/doc/html/boost_regex/syntax/basic_extended.html
+++ b/doc/html/boost_regex/syntax/basic_extended.html
@@ -4,7 +4,7 @@
POSIX Extended Regular Expression Syntax
-
+
diff --git a/doc/html/boost_regex/syntax/basic_syntax.html b/doc/html/boost_regex/syntax/basic_syntax.html
index abd79c7f..4e720112 100644
--- a/doc/html/boost_regex/syntax/basic_syntax.html
+++ b/doc/html/boost_regex/syntax/basic_syntax.html
@@ -4,7 +4,7 @@
POSIX Basic Regular Expression Syntax
-
+
diff --git a/doc/html/boost_regex/syntax/character_classes.html b/doc/html/boost_regex/syntax/character_classes.html
index 840d404a..7b1324cf 100644
--- a/doc/html/boost_regex/syntax/character_classes.html
+++ b/doc/html/boost_regex/syntax/character_classes.html
@@ -4,7 +4,7 @@
Character Class Names
-
+
diff --git a/doc/html/boost_regex/syntax/character_classes/optional_char_class_names.html b/doc/html/boost_regex/syntax/character_classes/optional_char_class_names.html
index c058d882..ad35f0fe 100644
--- a/doc/html/boost_regex/syntax/character_classes/optional_char_class_names.html
+++ b/doc/html/boost_regex/syntax/character_classes/optional_char_class_names.html
@@ -4,7 +4,7 @@
Character classes that are supported by Unicode Regular Expressions
-
+
diff --git a/doc/html/boost_regex/syntax/character_classes/std_char_classes.html b/doc/html/boost_regex/syntax/character_classes/std_char_classes.html
index 2303bdb4..42918d24 100644
--- a/doc/html/boost_regex/syntax/character_classes/std_char_classes.html
+++ b/doc/html/boost_regex/syntax/character_classes/std_char_classes.html
@@ -4,7 +4,7 @@
Character Classes that are Always Supported
-
+
diff --git a/doc/html/boost_regex/syntax/collating_names.html b/doc/html/boost_regex/syntax/collating_names.html
index e156b8a8..654c21f5 100644
--- a/doc/html/boost_regex/syntax/collating_names.html
+++ b/doc/html/boost_regex/syntax/collating_names.html
@@ -4,7 +4,7 @@
Collating Names
-
+
diff --git a/doc/html/boost_regex/syntax/collating_names/digraphs.html b/doc/html/boost_regex/syntax/collating_names/digraphs.html
index 202491bf..a2b502b0 100644
--- a/doc/html/boost_regex/syntax/collating_names/digraphs.html
+++ b/doc/html/boost_regex/syntax/collating_names/digraphs.html
@@ -4,7 +4,7 @@
Digraphs
-
+
diff --git a/doc/html/boost_regex/syntax/collating_names/named_unicode.html b/doc/html/boost_regex/syntax/collating_names/named_unicode.html
index 69f8645c..4de7775e 100644
--- a/doc/html/boost_regex/syntax/collating_names/named_unicode.html
+++ b/doc/html/boost_regex/syntax/collating_names/named_unicode.html
@@ -4,7 +4,7 @@
Named Unicode Characters
-
+
diff --git a/doc/html/boost_regex/syntax/collating_names/posix_symbolic_names.html b/doc/html/boost_regex/syntax/collating_names/posix_symbolic_names.html
index 0cc6474b..4ab6b0d3 100644
--- a/doc/html/boost_regex/syntax/collating_names/posix_symbolic_names.html
+++ b/doc/html/boost_regex/syntax/collating_names/posix_symbolic_names.html
@@ -4,7 +4,7 @@
POSIX Symbolic Names
-
+
diff --git a/doc/html/boost_regex/syntax/leftmost_longest_rule.html b/doc/html/boost_regex/syntax/leftmost_longest_rule.html
index 3168cfe9..db03acdf 100644
--- a/doc/html/boost_regex/syntax/leftmost_longest_rule.html
+++ b/doc/html/boost_regex/syntax/leftmost_longest_rule.html
@@ -4,7 +4,7 @@
The Leftmost Longest Rule
-
+
diff --git a/doc/html/boost_regex/syntax/perl_syntax.html b/doc/html/boost_regex/syntax/perl_syntax.html
index 64505056..9fd7546c 100644
--- a/doc/html/boost_regex/syntax/perl_syntax.html
+++ b/doc/html/boost_regex/syntax/perl_syntax.html
@@ -4,7 +4,7 @@
Perl Regular Expression Syntax
-
+
@@ -52,6 +52,9 @@
following special characters:
.[{}()\*+?|^$
+
+ Other characters are special only in certain situations - for example ]
is special only after an opening [
.
+
Wildcard
diff --git a/doc/html/boost_regex/unicode.html b/doc/html/boost_regex/unicode.html
index cb4e4b3c..6168c6c7 100644
--- a/doc/html/boost_regex/unicode.html
+++ b/doc/html/boost_regex/unicode.html
@@ -4,8 +4,8 @@
Unicode and Boost.Regex
-
-
+
+
diff --git a/doc/html/index.html b/doc/html/index.html
index e82febd5..50dfde87 100644
--- a/doc/html/index.html
+++ b/doc/html/index.html
@@ -1,10 +1,10 @@
-Boost.Regex 5.1.2
+Boost.Regex 5.1.3
-
+
@@ -22,7 +22,7 @@
-Last revised: August 22, 2016 at 11:48:39 GMT
+Last revised: February 24, 2017 at 13:14:00 GMT
diff --git a/doc/regex.qbk b/doc/regex.qbk
index bdf67c16..b8454a01 100644
--- a/doc/regex.qbk
+++ b/doc/regex.qbk
@@ -8,7 +8,7 @@
[@http://www.boost.org/LICENSE_1_0.txt])
]
[authors [Maddock, John]]
- [version 5.1.2]
+ [version 5.1.3]
[/last-revision $Date$]
]
diff --git a/doc/syntax_perl.qbk b/doc/syntax_perl.qbk
index 17aeb00b..2b8b13fb 100644
--- a/doc/syntax_perl.qbk
+++ b/doc/syntax_perl.qbk
@@ -28,6 +28,8 @@ following special characters:
[pre .\[{}()\\\*+?|^$]
+Other characters are special only in certain situations - for example `]` is special only after an opening `[`.
+
[h4 Wildcard]
The single character '.' when used outside of a character set will match
diff --git a/include/boost/regex/config.hpp b/include/boost/regex/config.hpp
index 9dc48dc8..589b1e3a 100644
--- a/include/boost/regex/config.hpp
+++ b/include/boost/regex/config.hpp
@@ -152,7 +152,7 @@
# if defined(BOOST_REGEX_NO_W32) || BOOST_PLAT_WINDOWS_RUNTIME
# define BOOST_REGEX_NO_FILEITER
# endif
-#else // defined(_WIN32)
+#else /* defined(_WIN32) */
# if !defined(BOOST_HAS_DIRENT_H)
# define BOOST_REGEX_NO_FILEITER
# endif
@@ -255,7 +255,7 @@
*
****************************************************************************/
-#if defined(BOOST_MSVC) && defined(_MSC_EXTENSIONS)
+#if defined(_MSC_VER) && defined(_MSC_EXTENSIONS)
#if defined(_DEBUG) || defined(__MSVC_RUNTIME_CHECKS) || defined(_MANAGED) || defined(BOOST_REGEX_NO_FASTCALL)
# define BOOST_REGEX_CALL __cdecl
#else
@@ -393,7 +393,7 @@ BOOST_REGEX_DECL void BOOST_REGEX_CALL reset_stack_guard_page();
****************************************************************************/
#if !defined(BOOST_REGEX_RECURSIVE) && !defined(BOOST_REGEX_NON_RECURSIVE)
-# if defined(BOOST_REGEX_HAS_MS_STACK_GUARD) && !defined(_STLP_DEBUG) && !defined(__STL_DEBUG) && !(defined(BOOST_MSVC) && (BOOST_MSVC >= 1400))
+# if defined(BOOST_REGEX_HAS_MS_STACK_GUARD) && !defined(_STLP_DEBUG) && !defined(__STL_DEBUG) && !(defined(_MSC_VER) && (_MSC_VER >= 1400))
# define BOOST_REGEX_RECURSIVE
# else
# define BOOST_REGEX_NON_RECURSIVE
diff --git a/include/boost/regex/icu.hpp b/include/boost/regex/icu.hpp
index a57fe577..8be8e60a 100644
--- a/include/boost/regex/icu.hpp
+++ b/include/boost/regex/icu.hpp
@@ -410,7 +410,7 @@ void copy_results(MR1& out, MR2 const& in)
if(in[i].captures().size())
{
out[i].get_captures().assign(in[i].captures().size(), typename MR1::value_type());
- for(int j = 0; j < out[i].captures().size(); ++j)
+ for(int j = 0; j < (int)out[i].captures().size(); ++j)
{
out[i].get_captures()[j].first = in[i].captures()[j].first.base();
out[i].get_captures()[j].second = in[i].captures()[j].second.base();
diff --git a/include/boost/regex/pending/unicode_iterator.hpp b/include/boost/regex/pending/unicode_iterator.hpp
index 04af4260..becb17ad 100644
--- a/include/boost/regex/pending/unicode_iterator.hpp
+++ b/include/boost/regex/pending/unicode_iterator.hpp
@@ -117,7 +117,10 @@ inline unsigned utf8_trailing_byte_count(boost::uint8_t c)
#pragma warning(push)
#pragma warning(disable:4100)
#endif
-BOOST_NORETURN inline void invalid_utf32_code_point(::boost::uint32_t val)
+#ifndef BOOST_NO_EXCEPTIONS
+BOOST_NORETURN
+#endif
+inline void invalid_utf32_code_point(::boost::uint32_t val)
{
#ifndef BOOST_NO_STD_LOCALE
std::stringstream ss;
diff --git a/include/boost/regex/v4/basic_regex_creator.hpp b/include/boost/regex/v4/basic_regex_creator.hpp
index 51704a84..132ff84f 100644
--- a/include/boost/regex/v4/basic_regex_creator.hpp
+++ b/include/boost/regex/v4/basic_regex_creator.hpp
@@ -77,15 +77,15 @@ public:
void add_single(const digraph_type& s)
{
- m_singles.insert(m_singles.end(), s);
+ m_singles.insert(s);
if(s.second)
m_has_digraphs = true;
m_empty = false;
}
void add_range(const digraph_type& first, const digraph_type& end)
{
- m_ranges.insert(m_ranges.end(), first);
- m_ranges.insert(m_ranges.end(), end);
+ m_ranges.push_back(first);
+ m_ranges.push_back(end);
if(first.second)
{
m_has_digraphs = true;
@@ -110,7 +110,7 @@ public:
}
void add_equivalent(const digraph_type& s)
{
- m_equivalents.insert(m_equivalents.end(), s);
+ m_equivalents.insert(s);
if(s.second)
{
m_has_digraphs = true;
@@ -136,11 +136,12 @@ public:
return m_negate;
}
typedef typename std::vector
::const_iterator list_iterator;
- list_iterator singles_begin()const
+ typedef typename std::set::const_iterator set_iterator;
+ set_iterator singles_begin()const
{
return m_singles.begin();
}
- list_iterator singles_end()const
+ set_iterator singles_end()const
{
return m_singles.end();
}
@@ -152,11 +153,11 @@ public:
{
return m_ranges.end();
}
- list_iterator equivalents_begin()const
+ set_iterator equivalents_begin()const
{
return m_equivalents.begin();
}
- list_iterator equivalents_end()const
+ set_iterator equivalents_end()const
{
return m_equivalents.end();
}
@@ -173,14 +174,14 @@ public:
return m_empty;
}
private:
- std::vector m_singles; // a list of single characters to match
+ std::set m_singles; // a list of single characters to match
std::vector m_ranges; // a list of end points of our ranges
bool m_negate; // true if the set is to be negated
bool m_has_digraphs; // true if we have digraphs present
m_type m_classes; // character classes to match
m_type m_negated_classes; // negated character classes to match
bool m_empty; // whether we've added anything yet
- std::vector m_equivalents; // a list of equivalence classes
+ std::set m_equivalents; // a list of equivalence classes
};
template
@@ -239,7 +240,7 @@ protected:
unsigned m_backrefs; // bitmask of permitted backrefs
boost::uintmax_t m_bad_repeats; // bitmask of repeats we can't deduce a startmap for;
bool m_has_recursions; // set when we have recursive expresisons to fixup
- std::vector m_recursion_checks; // notes which recursions we've followed while analysing this expression
+ std::vector m_recursion_checks; // notes which recursions we've followed while analysing this expression
typename traits::char_class_type m_word_mask; // mask used to determine if a character is a word character
typename traits::char_class_type m_mask_space; // mask used to determine if a character is a word character
typename traits::char_class_type m_lower_mask; // mask used to determine if a character is a lowercase character
@@ -365,6 +366,7 @@ re_syntax_base* basic_regex_creator::append_set(
{
typedef typename traits::string_type string_type;
typedef typename basic_char_set::list_iterator item_iterator;
+ typedef typename basic_char_set::set_iterator set_iterator;
typedef typename traits::char_class_type m_type;
re_set_long* result = static_cast*>(append_state(syntax_element_long_set, sizeof(re_set_long)));
@@ -395,20 +397,25 @@ re_syntax_base* basic_regex_creator::append_set(
// now extend with all the singles:
//
item_iterator first, last;
- first = char_set.singles_begin();
- last = char_set.singles_end();
- while(first != last)
+ set_iterator sfirst, slast;
+ sfirst = char_set.singles_begin();
+ slast = char_set.singles_end();
+ while(sfirst != slast)
{
- charT* p = static_cast(this->m_pdata->m_data.extend(sizeof(charT) * (first->second ? 3 : 2)));
- p[0] = m_traits.translate(first->first, m_icase);
- if(first->second)
+ charT* p = static_cast(this->m_pdata->m_data.extend(sizeof(charT) * (sfirst->first == static_cast(0) ? 1 : sfirst->second ? 3 : 2)));
+ p[0] = m_traits.translate(sfirst->first, m_icase);
+ if(sfirst->first == static_cast(0))
{
- p[1] = m_traits.translate(first->second, m_icase);
+ p[0] = 0;
+ }
+ else if(sfirst->second)
+ {
+ p[1] = m_traits.translate(sfirst->second, m_icase);
p[2] = 0;
}
else
p[1] = 0;
- ++first;
+ ++sfirst;
}
//
// now extend with all the ranges:
@@ -472,24 +479,24 @@ re_syntax_base* basic_regex_creator::append_set(
//
// now process the equivalence classes:
//
- first = char_set.equivalents_begin();
- last = char_set.equivalents_end();
- while(first != last)
+ sfirst = char_set.equivalents_begin();
+ slast = char_set.equivalents_end();
+ while(sfirst != slast)
{
string_type s;
- if(first->second)
+ if(sfirst->second)
{
- charT cs[3] = { first->first, first->second, charT(0), };
+ charT cs[3] = { sfirst->first, sfirst->second, charT(0), };
s = m_traits.transform_primary(cs, cs+2);
}
else
- s = m_traits.transform_primary(&first->first, &first->first+1);
+ s = m_traits.transform_primary(&sfirst->first, &sfirst->first+1);
if(s.empty())
return 0; // invalid or unsupported equivalence class
charT* p = static_cast(this->m_pdata->m_data.extend(sizeof(charT) * (s.size()+1) ) );
BOOST_REGEX_DETAIL_NS::copy(s.begin(), s.end(), p);
p[s.size()] = charT(0);
- ++first;
+ ++sfirst;
}
//
// finally reset the address of our last state:
@@ -518,7 +525,8 @@ re_syntax_base* basic_regex_creator::append_set(
{
typedef typename traits::string_type string_type;
typedef typename basic_char_set::list_iterator item_iterator;
-
+ typedef typename basic_char_set::set_iterator set_iterator;
+
re_set* result = static_cast(append_state(syntax_element_set, sizeof(re_set)));
bool negate = char_set.is_negated();
std::memset(result->_map, 0, sizeof(result->_map));
@@ -526,17 +534,18 @@ re_syntax_base* basic_regex_creator::append_set(
// handle singles first:
//
item_iterator first, last;
- first = char_set.singles_begin();
- last = char_set.singles_end();
- while(first != last)
+ set_iterator sfirst, slast;
+ sfirst = char_set.singles_begin();
+ slast = char_set.singles_end();
+ while(sfirst != slast)
{
for(unsigned int i = 0; i < (1 << CHAR_BIT); ++i)
{
if(this->m_traits.translate(static_cast(i), this->m_icase)
- == this->m_traits.translate(first->first, this->m_icase))
+ == this->m_traits.translate(sfirst->first, this->m_icase))
result->_map[i] = true;
}
- ++first;
+ ++sfirst;
}
//
// OK now handle ranges:
@@ -623,13 +632,13 @@ re_syntax_base* basic_regex_creator::append_set(
//
// now process the equivalence classes:
//
- first = char_set.equivalents_begin();
- last = char_set.equivalents_end();
- while(first != last)
+ sfirst = char_set.equivalents_begin();
+ slast = char_set.equivalents_end();
+ while(sfirst != slast)
{
string_type s;
- BOOST_ASSERT(static_cast(0) == first->second);
- s = m_traits.transform_primary(&first->first, &first->first+1);
+ BOOST_ASSERT(static_cast(0) == sfirst->second);
+ s = m_traits.transform_primary(&sfirst->first, &sfirst->first+1);
if(s.empty())
return 0; // invalid or unsupported equivalence class
for(unsigned i = 0; i < (1u << CHAR_BIT); ++i)
@@ -639,7 +648,7 @@ re_syntax_base* basic_regex_creator::append_set(
if(s == s2)
result->_map[i] = true;
}
- ++first;
+ ++sfirst;
}
if(negate)
{
@@ -690,7 +699,7 @@ void basic_regex_creator::finalize(const charT* p1, const charT*
m_bad_repeats = 0;
if(m_has_recursions)
- m_recursion_checks.assign(1 + m_pdata->m_mark_count, false);
+ m_recursion_checks.assign(1 + m_pdata->m_mark_count, 0u);
create_startmap(m_pdata->m_first_state, m_pdata->m_startmap, &(m_pdata->m_can_be_null), mask_all);
// get the restart type:
m_pdata->m_restart_type = get_restart_type(m_pdata->m_first_state);
@@ -792,50 +801,57 @@ void basic_regex_creator::fixup_recursions(re_syntax_base* state)
//
idx = m_pdata->get_id(static_cast(idx));
}
- while(p)
+ if(idx < 0)
{
- if((p->type == syntax_element_startmark) && (static_cast(p)->index == idx))
+ ok = false;
+ }
+ else
+ {
+ while(p)
{
- //
- // We've found the target of the recursion, set the jump target:
- //
- static_cast(state)->alt.p = p;
- ok = true;
- //
- // Now scan the target for nested repeats:
- //
- p = p->next.p;
- int next_rep_id = 0;
- while(p)
+ if((p->type == syntax_element_startmark) && (static_cast(p)->index == idx))
{
- switch(p->type)
- {
- case syntax_element_rep:
- case syntax_element_dot_rep:
- case syntax_element_char_rep:
- case syntax_element_short_set_rep:
- case syntax_element_long_set_rep:
- next_rep_id = static_cast(p)->state_id;
- break;
- case syntax_element_endmark:
- if(static_cast(p)->index == idx)
- next_rep_id = -1;
- break;
- default:
- break;
- }
- if(next_rep_id)
- break;
+ //
+ // We've found the target of the recursion, set the jump target:
+ //
+ static_cast(state)->alt.p = p;
+ ok = true;
+ //
+ // Now scan the target for nested repeats:
+ //
p = p->next.p;
- }
- if(next_rep_id > 0)
- {
- static_cast(state)->state_id = next_rep_id - 1;
- }
+ int next_rep_id = 0;
+ while(p)
+ {
+ switch(p->type)
+ {
+ case syntax_element_rep:
+ case syntax_element_dot_rep:
+ case syntax_element_char_rep:
+ case syntax_element_short_set_rep:
+ case syntax_element_long_set_rep:
+ next_rep_id = static_cast(p)->state_id;
+ break;
+ case syntax_element_endmark:
+ if(static_cast(p)->index == idx)
+ next_rep_id = -1;
+ break;
+ default:
+ break;
+ }
+ if(next_rep_id)
+ break;
+ p = p->next.p;
+ }
+ if(next_rep_id > 0)
+ {
+ static_cast(state)->state_id = next_rep_id - 1;
+ }
- break;
+ break;
+ }
+ p = p->next.p;
}
- p = p->next.p;
}
if(!ok)
{
@@ -934,7 +950,7 @@ void basic_regex_creator::create_startmaps(re_syntax_base* state)
{
// Initialize m_recursion_checks if we need it:
if(m_has_recursions)
- m_recursion_checks.assign(1 + m_pdata->m_mark_count, false);
+ m_recursion_checks.assign(1 + m_pdata->m_mark_count, 0u);
const std::pair& p = v.back();
m_icase = p.first;
@@ -947,7 +963,7 @@ void basic_regex_creator::create_startmaps(re_syntax_base* state)
m_bad_repeats = 0;
if(m_has_recursions)
- m_recursion_checks.assign(1 + m_pdata->m_mark_count, false);
+ m_recursion_checks.assign(1 + m_pdata->m_mark_count, 0u);
create_startmap(static_cast(state)->alt.p, static_cast(state)->_map, &static_cast(state)->can_be_null, mask_skip);
// adjust the type of the state to allow for faster matching:
state->type = this->get_repeat_type(state);
@@ -1102,11 +1118,9 @@ void basic_regex_creator::create_startmap(re_syntax_base* state,
}
case syntax_element_recurse:
{
- if(state->type == syntax_element_startmark)
- recursion_sub = static_cast(state)->index;
- else
- recursion_sub = 0;
- if(m_recursion_checks[recursion_sub])
+ BOOST_ASSERT(static_cast(state)->alt.p->type == syntax_element_startmark);
+ recursion_sub = static_cast(static_cast(state)->alt.p)->index;
+ if(m_recursion_checks[recursion_sub] & 1u)
{
// Infinite recursion!!
if(0 == this->m_pdata->m_status) // update the error code if not already set
@@ -1131,10 +1145,10 @@ void basic_regex_creator::create_startmap(re_syntax_base* state,
recursion_start = state;
recursion_restart = state->next.p;
state = static_cast(state)->alt.p;
- m_recursion_checks[recursion_sub] = true;
+ m_recursion_checks[recursion_sub] |= 1u;
break;
}
- m_recursion_checks[recursion_sub] = true;
+ m_recursion_checks[recursion_sub] |= 1u;
// can't handle nested recursion here...
BOOST_FALLTHROUGH;
}
@@ -1328,8 +1342,9 @@ void basic_regex_creator::create_startmap(re_syntax_base* state,
}
p = p->next.p;
}
- if(ok)
+ if(ok && ((m_recursion_checks[static_cast(state)->index] & 2u) == 0))
{
+ m_recursion_checks[static_cast(state)->index] |= 2u;
create_startmap(p->next.p, l_map, pnull, mask);
}
}
@@ -1419,7 +1434,7 @@ bool basic_regex_creator::is_bad_repeat(re_syntax_base* pt)
case syntax_element_long_set_rep:
{
unsigned state_id = static_cast(pt)->state_id;
- if(state_id > sizeof(m_bad_repeats) * CHAR_BIT)
+ if(state_id >= sizeof(m_bad_repeats) * CHAR_BIT)
return true; // run out of bits, assume we can't traverse this one.
static const boost::uintmax_t one = 1uL;
return m_bad_repeats & (one << state_id);
diff --git a/include/boost/regex/v4/basic_regex_parser.hpp b/include/boost/regex/v4/basic_regex_parser.hpp
index 0071a8ce..4ab1670e 100644
--- a/include/boost/regex/v4/basic_regex_parser.hpp
+++ b/include/boost/regex/v4/basic_regex_parser.hpp
@@ -511,7 +511,8 @@ bool basic_regex_parser::parse_open_paren()
this->fail(regex_constants::error_paren, ::boost::BOOST_REGEX_DETAIL_NS::distance(m_base, m_end));
return false;
}
- BOOST_ASSERT(this->m_traits.syntax_type(*m_position) == regex_constants::syntax_close_mark);
+ if(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_close_mark)
+ return false;
#ifndef BOOST_NO_STD_DISTANCE
if(markid && (this->flags() & regbase::save_subexpression_location))
this->m_pdata->m_subs.at(markid - 1).second = std::distance(m_base, m_position);
@@ -901,7 +902,7 @@ escape_type_class_jump:
}
if(negative)
i = 1 + m_mark_count - i;
- if(((i > 0) && (this->m_backrefs & (1u << (i-1)))) || ((i > 10000) && (this->m_pdata->get_id(i) > 0) && (this->m_backrefs & (1u << (this->m_pdata->get_id(i)-1)))))
+ if(((i > 0) && (i < std::numeric_limits::digits) && (i - 1 < static_cast(sizeof(unsigned) * CHAR_BIT)) && (this->m_backrefs & (1u << (i-1)))) || ((i > 10000) && (this->m_pdata->get_id(i) > 0) && (this->m_pdata->get_id(i)-1 < static_cast(sizeof(unsigned) * CHAR_BIT)) && (this->m_backrefs & (1u << (this->m_pdata->get_id(i)-1)))))
{
m_position = pc;
re_brace* pb = static_cast(this->append_state(syntax_element_backref, sizeof(re_brace)));
@@ -2596,7 +2597,7 @@ option_group_jump:
re_alt* alt = static_cast(this->insert_state(expected_alt_point, syntax_element_alt, sizeof(re_alt)));
alt->alt.i = this->m_pdata->m_data.size() - this->getoffset(alt);
}
- else if(this->getaddress(static_cast(b)->alt.i, b)->type == syntax_element_alt)
+ else if(((std::ptrdiff_t)this->m_pdata->m_data.size() > (static_cast(b)->alt.i + this->getoffset(b))) && (static_cast(b)->alt.i > 0) && this->getaddress(static_cast(b)->alt.i, b)->type == syntax_element_alt)
{
// Can't have seen more than one alternative:
// Rewind to start of (? sequence:
@@ -2860,6 +2861,10 @@ bool basic_regex_parser::parse_perl_verb()
}
break;
}
+ // Rewind to start of (* sequence:
+ --m_position;
+ while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
+ fail(regex_constants::error_perl_extension, m_position - m_base);
return false;
}
diff --git a/include/boost/regex/v4/match_flags.hpp b/include/boost/regex/v4/match_flags.hpp
index 1c0046b7..1938b27a 100644
--- a/include/boost/regex/v4/match_flags.hpp
+++ b/include/boost/regex/v4/match_flags.hpp
@@ -68,7 +68,18 @@ typedef enum _match_flags
format_no_copy = format_all << 1, /* don't copy non-matching segments. */
format_first_only = format_no_copy << 1, /* Only replace first occurance. */
format_is_if = format_first_only << 1, /* internal use only. */
- format_literal = format_is_if << 1 /* treat string as a literal */
+ format_literal = format_is_if << 1, /* treat string as a literal */
+
+ match_not_any = match_not_bol | match_not_eol | match_not_bob
+ | match_not_eob | match_not_bow | match_not_eow | match_not_dot_newline
+ | match_not_dot_null | match_prev_avail | match_init | match_not_null
+ | match_continuous | match_partial | match_stop | match_not_initial_null
+ | match_stop | match_all | match_perl | match_posix | match_nosubs
+ | match_extra | match_single_line | match_unused1 | match_unused2
+ | match_unused3 | match_max | format_perl | format_default | format_sed
+ | format_all | format_no_copy | format_first_only | format_is_if
+ | format_literal
+
} match_flags;
diff --git a/include/boost/regex/v4/perl_matcher.hpp b/include/boost/regex/v4/perl_matcher.hpp
index 96a086b8..32517c62 100644
--- a/include/boost/regex/v4/perl_matcher.hpp
+++ b/include/boost/regex/v4/perl_matcher.hpp
@@ -161,9 +161,9 @@ iterator BOOST_REGEX_CALL re_is_set_member(iterator next,
if(*p == static_cast(0))
{
// treat null string as special case:
- if(traits_inst.translate(*ptr, icase) != *p)
+ if(traits_inst.translate(*ptr, icase))
{
- while(*p == static_cast(0))++p;
+ ++p;
continue;
}
return set_->isnot ? next : (ptr == next) ? ++next : ptr;
@@ -348,6 +348,7 @@ struct recursion_info
const re_syntax_base* preturn_address;
Results results;
repeater_count* repeater_stack;
+ iterator location_of_start;
};
#ifdef BOOST_MSVC
diff --git a/include/boost/regex/v4/perl_matcher_common.hpp b/include/boost/regex/v4/perl_matcher_common.hpp
index 6febff4c..7974e748 100644
--- a/include/boost/regex/v4/perl_matcher_common.hpp
+++ b/include/boost/regex/v4/perl_matcher_common.hpp
@@ -90,7 +90,7 @@ void perl_matcher::construct_init(const basic_r
match_any_mask = static_cast((f & match_not_dot_newline) ? BOOST_REGEX_DETAIL_NS::test_not_newline : BOOST_REGEX_DETAIL_NS::test_newline);
// Disable match_any if requested in the state machine:
if(e.get_data().m_disable_match_any)
- m_match_flags &= ~regex_constants::match_any;
+ m_match_flags &= regex_constants::match_not_any;
}
template
diff --git a/include/boost/regex/v4/perl_matcher_non_recursive.hpp b/include/boost/regex/v4/perl_matcher_non_recursive.hpp
index aa7af3b4..c12dea8e 100644
--- a/include/boost/regex/v4/perl_matcher_non_recursive.hpp
+++ b/include/boost/regex/v4/perl_matcher_non_recursive.hpp
@@ -131,8 +131,7 @@ template
struct saved_recursion : public saved_state
{
saved_recursion(int idx, const re_syntax_base* p, Results* pr)
- : saved_state(14), recursion_id(idx), preturn_address(p), results(*pr)
- {}
+ : saved_state(14), recursion_id(idx), preturn_address(p), results(*pr) {}
int recursion_id;
const re_syntax_base* preturn_address;
Results results;
@@ -405,7 +404,11 @@ bool perl_matcher::match_startmark()
m_independent = true;
const re_syntax_base* next_pstate = static_cast(pstate->next.p)->alt.p->next.p;
pstate = pstate->next.p->next.p;
- bool r = match_all_states();
+ bool r = false;
+#if !defined(BOOST_NO_EXCEPTIONS)
+ try{
+#endif
+ r = match_all_states();
if(!r && !m_independent)
{
// Must be unwinding from a COMMIT/SKIP/PRUNE and the independent
@@ -413,8 +416,20 @@ bool perl_matcher::match_startmark()
while(unwind(false));
return false;
}
+#if !defined(BOOST_NO_EXCEPTIONS)
+ }
+ catch(...)
+ {
pstate = next_pstate;
- m_independent = old_independent;
+ // unwind all pushed states, apart from anything else this
+ // ensures that all the states are correctly destructed
+ // not just the memory freed.
+ while(unwind(true)) {}
+ throw;
+ }
+#endif
+ pstate = next_pstate;
+ m_independent = old_independent;
#ifdef BOOST_REGEX_MATCH_EXTRA
if(r && (m_match_flags & match_extra))
{
@@ -428,8 +443,23 @@ bool perl_matcher::match_startmark()
for(i = 0; i < temp_match.size(); ++i)
(*m_presult)[i].get_captures().clear();
// match everything else:
- r = match_all_states();
- // now place the stored captures back:
+#if !defined(BOOST_NO_EXCEPTIONS)
+ try{
+#endif
+ r = match_all_states();
+#if !defined(BOOST_NO_EXCEPTIONS)
+ }
+ catch(...)
+ {
+ pstate = next_pstate;
+ // unwind all pushed states, apart from anything else this
+ // ensures that all the states are correctly destructed
+ // not just the memory freed.
+ while(unwind(true)) {}
+ throw;
+ }
+#endif
+ // now place the stored captures back:
for(i = 0; i < temp_match.size(); ++i)
{
typedef typename sub_match::capture_sequence_type seq;
@@ -464,14 +494,29 @@ bool perl_matcher::match_startmark()
BidiIterator saved_position = position;
const re_syntax_base* next_pstate = static_cast(pstate->next.p)->alt.p->next.p;
pstate = pstate->next.p->next.p;
- bool r = match_all_states();
- position = saved_position;
- if(negated)
- r = !r;
- if(r)
+#if !defined(BOOST_NO_EXCEPTIONS)
+ try{
+#endif
+ bool r = match_all_states();
+ position = saved_position;
+ if(negated)
+ r = !r;
+ if(r)
+ pstate = next_pstate;
+ else
+ pstate = alt->alt.p;
+#if !defined(BOOST_NO_EXCEPTIONS)
+ }
+ catch(...)
+ {
pstate = next_pstate;
- else
- pstate = alt->alt.p;
+ // unwind all pushed states, apart from anything else this
+ // ensures that all the states are correctly destructed
+ // not just the memory freed.
+ while(unwind(true)){}
+ throw;
+ }
+#endif
break;
}
}
@@ -953,6 +998,19 @@ bool perl_matcher::match_recursion()
{
BOOST_ASSERT(pstate->type == syntax_element_recurse);
//
+ // See if we've seen this recursion before at this location, if we have then
+ // we need to prevent infinite recursion:
+ //
+ for(typename std::vector >::reverse_iterator i = recursion_stack.rbegin(); i != recursion_stack.rend(); ++i)
+ {
+ if(i->idx == static_cast(static_cast(pstate)->alt.p)->index)
+ {
+ if(i->location_of_start == position)
+ return false;
+ break;
+ }
+ }
+ //
// Backup call stack:
//
push_recursion_pop();
@@ -968,6 +1026,7 @@ bool perl_matcher::match_recursion()
recursion_stack.back().results = *m_presult;
pstate = static_cast(pstate)->alt.p;
recursion_stack.back().idx = static_cast(pstate)->index;
+ recursion_stack.back().location_of_start = position;
//if(static_cast(pstate)->state_id > 0)
{
push_repeater_count(-(2 + static_cast(pstate)->index), &next_count);
@@ -1705,6 +1764,7 @@ bool perl_matcher::unwind_recursion(bool r)
recursion_stack.back().idx = pmp->recursion_id;
recursion_stack.back().preturn_address = pmp->preturn_address;
recursion_stack.back().results = pmp->results;
+ recursion_stack.back().location_of_start = position;
}
boost::BOOST_REGEX_DETAIL_NS::inplace_destroy(pmp++);
m_backup_state = pmp;
diff --git a/include/boost/regex/v4/perl_matcher_recursive.hpp b/include/boost/regex/v4/perl_matcher_recursive.hpp
index 33b91581..8eb23abf 100644
--- a/include/boost/regex/v4/perl_matcher_recursive.hpp
+++ b/include/boost/regex/v4/perl_matcher_recursive.hpp
@@ -900,10 +900,27 @@ bool perl_matcher::match_recursion()
{
recursion_stack.reserve(50);
}
+ //
+ // See if we've seen this recursion before at this location, if we have then
+ // we need to prevent infinite recursion:
+ //
+ for(typename std::vector >::reverse_iterator i = recursion_stack.rbegin(); i != recursion_stack.rend(); ++i)
+ {
+ if(i->idx == static_cast(static_cast(pstate)->alt.p)->index)
+ {
+ if(i->location_of_start == position)
+ return false;
+ break;
+ }
+ }
+ //
+ // Now get on with it:
+ //
recursion_stack.push_back(recursion_info());
recursion_stack.back().preturn_address = pstate->next.p;
recursion_stack.back().results = *m_presult;
recursion_stack.back().repeater_stack = next_count;
+ recursion_stack.back().location_of_start = position;
pstate = static_cast(pstate)->alt.p;
recursion_stack.back().idx = static_cast(pstate)->index;
@@ -979,6 +996,7 @@ bool perl_matcher::match_match()
recursion_stack.push_back(recursion_info());
recursion_stack.back().preturn_address = saved_state;
recursion_stack.back().results = *m_presult;
+ recursion_stack.back().location_of_start = position;
return false;
}
return true;
diff --git a/include/boost/regex/v4/regex_workaround.hpp b/include/boost/regex/v4/regex_workaround.hpp
index 821be608..f900720b 100644
--- a/include/boost/regex/v4/regex_workaround.hpp
+++ b/include/boost/regex/v4/regex_workaround.hpp
@@ -33,6 +33,7 @@
#include
#include
#include
+#include
#include
#include
#include
diff --git a/test/captures/Jamfile.v2 b/test/captures/Jamfile.v2
index 527315c2..f3ee8905 100644
--- a/test/captures/Jamfile.v2
+++ b/test/captures/Jamfile.v2
@@ -26,10 +26,10 @@ EX_SOURCES =
winstances.cpp
usinstances.cpp ;
-lib boost_regex_extra : $(EX_SOURCES)
+lib boost_regex_extra : $(EX_SOURCES) ../../build//icu_options
:
BOOST_REGEX_MATCH_EXTRA=1
- shared:BOOST_REGEX_DYN_LINK=1
+ shared:BOOST_REGEX_DYN_LINK=1
:
;
diff --git a/test/de_fuzz/Jamfile.v2 b/test/de_fuzz/Jamfile.v2
new file mode 100644
index 00000000..4306ba7c
--- /dev/null
+++ b/test/de_fuzz/Jamfile.v2
@@ -0,0 +1,37 @@
+# copyright John Maddock 2003
+# Distributed under the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE_1_0.txt or copy at
+# http://www.boost.org/LICENSE_1_0.txt.
+
+import testing ;
+
+lib Fuzzer : : . ;
+
+run narrow.cpp [ glob ../../src/*.cpp ] Fuzzer
+ : # additional args
+ -dict=dictionary.txt -workers=3 corpus -runs=5000
+ : # test-files
+ : # requirements
+ clang -fsanitize-coverage=trace-pc-guard
+ -fsanitize=address -fsanitize=undefined
+ -fno-sanitize-recover=undefined -fno-optimize-sibling-calls
+ -fno-omit-frame-pointer
+ ../../../..
+ -fsanitize=address -fsanitize=undefined
+ debug
+;
+
+run wide.cpp [ glob ../../src/*.cpp ] Fuzzer
+ : # additional args
+ -dict=dictionary.txt -workers=3 corpus -runs=5000
+ : # test-files
+ : # requirements
+ clang -fsanitize-coverage=trace-pc-guard
+ -fsanitize=address -fsanitize=undefined
+ -fno-sanitize-recover=undefined -fno-optimize-sibling-calls
+ -fno-omit-frame-pointer
+ ../../../..
+ -fsanitize=address -fsanitize=undefined
+ debug
+;
+
diff --git a/test/de_fuzz/corpus/001ba32e9488b739cad5c47cf6743092c3e959ba b/test/de_fuzz/corpus/001ba32e9488b739cad5c47cf6743092c3e959ba
new file mode 100644
index 00000000..3ae87bcf
Binary files /dev/null and b/test/de_fuzz/corpus/001ba32e9488b739cad5c47cf6743092c3e959ba differ
diff --git a/test/de_fuzz/corpus/0022cb33f1cee7a46b962b9531184db5c56061df b/test/de_fuzz/corpus/0022cb33f1cee7a46b962b9531184db5c56061df
new file mode 100644
index 00000000..330a003c
Binary files /dev/null and b/test/de_fuzz/corpus/0022cb33f1cee7a46b962b9531184db5c56061df differ
diff --git a/test/de_fuzz/corpus/0024c001b45a2ff3eb568d8a0c3e461aceb73417 b/test/de_fuzz/corpus/0024c001b45a2ff3eb568d8a0c3e461aceb73417
new file mode 100644
index 00000000..3d6d90ae
Binary files /dev/null and b/test/de_fuzz/corpus/0024c001b45a2ff3eb568d8a0c3e461aceb73417 differ
diff --git a/test/de_fuzz/corpus/008845a0cee378bad5ae87f276ce5f942febab66 b/test/de_fuzz/corpus/008845a0cee378bad5ae87f276ce5f942febab66
new file mode 100644
index 00000000..849afbb5
Binary files /dev/null and b/test/de_fuzz/corpus/008845a0cee378bad5ae87f276ce5f942febab66 differ
diff --git a/test/de_fuzz/corpus/009a13687872382d9ea4ccb32d90583fcdbd43b7 b/test/de_fuzz/corpus/009a13687872382d9ea4ccb32d90583fcdbd43b7
new file mode 100644
index 00000000..da85ccb5
Binary files /dev/null and b/test/de_fuzz/corpus/009a13687872382d9ea4ccb32d90583fcdbd43b7 differ
diff --git a/test/de_fuzz/corpus/00ebfa429dbb73ad5188bdb5956364b45e4b8c71 b/test/de_fuzz/corpus/00ebfa429dbb73ad5188bdb5956364b45e4b8c71
new file mode 100644
index 00000000..02492fa3
Binary files /dev/null and b/test/de_fuzz/corpus/00ebfa429dbb73ad5188bdb5956364b45e4b8c71 differ
diff --git a/test/de_fuzz/corpus/00f8a813a4079f137f5a7ba9ad2d8d759afe8fa6 b/test/de_fuzz/corpus/00f8a813a4079f137f5a7ba9ad2d8d759afe8fa6
new file mode 100644
index 00000000..85dfb90d
Binary files /dev/null and b/test/de_fuzz/corpus/00f8a813a4079f137f5a7ba9ad2d8d759afe8fa6 differ
diff --git a/test/de_fuzz/corpus/01745b71bcf3c1f4763f1e0ac7b9ed8e55af4596 b/test/de_fuzz/corpus/01745b71bcf3c1f4763f1e0ac7b9ed8e55af4596
new file mode 100644
index 00000000..98a62b23
Binary files /dev/null and b/test/de_fuzz/corpus/01745b71bcf3c1f4763f1e0ac7b9ed8e55af4596 differ
diff --git a/test/de_fuzz/corpus/01ba758580a918e8dd905999396066804be057d3 b/test/de_fuzz/corpus/01ba758580a918e8dd905999396066804be057d3
new file mode 100644
index 00000000..dbea194f
Binary files /dev/null and b/test/de_fuzz/corpus/01ba758580a918e8dd905999396066804be057d3 differ
diff --git a/test/de_fuzz/corpus/01daae36295786b241b430e93bc27ecdb21d0e1c b/test/de_fuzz/corpus/01daae36295786b241b430e93bc27ecdb21d0e1c
new file mode 100644
index 00000000..c7a1aedd
Binary files /dev/null and b/test/de_fuzz/corpus/01daae36295786b241b430e93bc27ecdb21d0e1c differ
diff --git a/test/de_fuzz/corpus/0214b13c2b40b2fe579aeaa2b803ebbfcd80effb b/test/de_fuzz/corpus/0214b13c2b40b2fe579aeaa2b803ebbfcd80effb
new file mode 100644
index 00000000..e86c86ba
Binary files /dev/null and b/test/de_fuzz/corpus/0214b13c2b40b2fe579aeaa2b803ebbfcd80effb differ
diff --git a/test/de_fuzz/corpus/0219a92fba5b22aad678f90c02fea5f718afbb81 b/test/de_fuzz/corpus/0219a92fba5b22aad678f90c02fea5f718afbb81
new file mode 100644
index 00000000..d0bb55e6
Binary files /dev/null and b/test/de_fuzz/corpus/0219a92fba5b22aad678f90c02fea5f718afbb81 differ
diff --git a/test/de_fuzz/corpus/024349a474519deb9e508901eaf34ef39792ff8c b/test/de_fuzz/corpus/024349a474519deb9e508901eaf34ef39792ff8c
new file mode 100644
index 00000000..4cc109b6
Binary files /dev/null and b/test/de_fuzz/corpus/024349a474519deb9e508901eaf34ef39792ff8c differ
diff --git a/test/de_fuzz/corpus/024999955824849ef5de2856ee5e29a682bb0991 b/test/de_fuzz/corpus/024999955824849ef5de2856ee5e29a682bb0991
new file mode 100644
index 00000000..289866fa
Binary files /dev/null and b/test/de_fuzz/corpus/024999955824849ef5de2856ee5e29a682bb0991 differ
diff --git a/test/de_fuzz/corpus/025bb14c5c3d27a0908f0bb363dc4988918ff67b b/test/de_fuzz/corpus/025bb14c5c3d27a0908f0bb363dc4988918ff67b
new file mode 100644
index 00000000..9107f083
Binary files /dev/null and b/test/de_fuzz/corpus/025bb14c5c3d27a0908f0bb363dc4988918ff67b differ
diff --git a/test/de_fuzz/corpus/02a5620461612a1944428314410762a948f95bb3 b/test/de_fuzz/corpus/02a5620461612a1944428314410762a948f95bb3
new file mode 100644
index 00000000..b35ae459
Binary files /dev/null and b/test/de_fuzz/corpus/02a5620461612a1944428314410762a948f95bb3 differ
diff --git a/test/de_fuzz/corpus/02d8400da629642911de8704c15e20932f0d7d38 b/test/de_fuzz/corpus/02d8400da629642911de8704c15e20932f0d7d38
new file mode 100644
index 00000000..8f7a4089
Binary files /dev/null and b/test/de_fuzz/corpus/02d8400da629642911de8704c15e20932f0d7d38 differ
diff --git a/test/de_fuzz/corpus/02f33a351a3bbc21f6fb7f2f7fd980c730f32cb0 b/test/de_fuzz/corpus/02f33a351a3bbc21f6fb7f2f7fd980c730f32cb0
new file mode 100644
index 00000000..24d6d2ff
Binary files /dev/null and b/test/de_fuzz/corpus/02f33a351a3bbc21f6fb7f2f7fd980c730f32cb0 differ
diff --git a/test/de_fuzz/corpus/02f406876967292fa39f061dd1ec2ff0e3c53e74 b/test/de_fuzz/corpus/02f406876967292fa39f061dd1ec2ff0e3c53e74
new file mode 100644
index 00000000..605d3d25
Binary files /dev/null and b/test/de_fuzz/corpus/02f406876967292fa39f061dd1ec2ff0e3c53e74 differ
diff --git a/test/de_fuzz/corpus/031ca47c0959456d1f0dacd483cb3167dfb05aad b/test/de_fuzz/corpus/031ca47c0959456d1f0dacd483cb3167dfb05aad
new file mode 100644
index 00000000..9c0bbbbe
Binary files /dev/null and b/test/de_fuzz/corpus/031ca47c0959456d1f0dacd483cb3167dfb05aad differ
diff --git a/test/de_fuzz/corpus/0334845542326f79e3fafbe94969c6b369f004bc b/test/de_fuzz/corpus/0334845542326f79e3fafbe94969c6b369f004bc
new file mode 100644
index 00000000..e27adcb2
--- /dev/null
+++ b/test/de_fuzz/corpus/0334845542326f79e3fafbe94969c6b369f004bc
@@ -0,0 +1 @@
+Z(((((((a+)+)+)+)+)+)+)+|Y(((((((a+)+)+)+)+)+)+)+|X(((((((a+)+)+)+)+)+)+)+|W(((((((a+)+)+)+)+)+)+)+|V(((((((a+)+)+)+)+)+)+)+|CZ(((((((a+)+)+)+)+)+)+)+|CY(((((((a+)+)+)+)+)+)+;+|CX(((((((a+)+)+)+)+)+)+)+|CW(((((((a+)+)+)+)+)+)+)+|CV(((((((a+)+)+)+)+)+)+)+|(a+)+b)
\ No newline at end of file
diff --git a/test/de_fuzz/corpus/035e7ceca28af7af6a84062ab32fefa2c54b869f b/test/de_fuzz/corpus/035e7ceca28af7af6a84062ab32fefa2c54b869f
new file mode 100644
index 00000000..3f1ccaa2
Binary files /dev/null and b/test/de_fuzz/corpus/035e7ceca28af7af6a84062ab32fefa2c54b869f differ
diff --git a/test/de_fuzz/corpus/0377c135f27099a908e16b2939f2576c76664cb6 b/test/de_fuzz/corpus/0377c135f27099a908e16b2939f2576c76664cb6
new file mode 100644
index 00000000..5eca7537
Binary files /dev/null and b/test/de_fuzz/corpus/0377c135f27099a908e16b2939f2576c76664cb6 differ
diff --git a/test/de_fuzz/corpus/03a4aada6edc5cfd457ffe100222aa70fb632303 b/test/de_fuzz/corpus/03a4aada6edc5cfd457ffe100222aa70fb632303
new file mode 100644
index 00000000..9fc1d6d0
Binary files /dev/null and b/test/de_fuzz/corpus/03a4aada6edc5cfd457ffe100222aa70fb632303 differ
diff --git a/test/de_fuzz/corpus/03c11cdd4941456244521dbfdcc2c7e203cbf029 b/test/de_fuzz/corpus/03c11cdd4941456244521dbfdcc2c7e203cbf029
new file mode 100644
index 00000000..445ce5c0
Binary files /dev/null and b/test/de_fuzz/corpus/03c11cdd4941456244521dbfdcc2c7e203cbf029 differ
diff --git a/test/de_fuzz/corpus/03ce080ad97029cfc9eef7522183313f1ca6c2d3 b/test/de_fuzz/corpus/03ce080ad97029cfc9eef7522183313f1ca6c2d3
new file mode 100644
index 00000000..7bec549f
Binary files /dev/null and b/test/de_fuzz/corpus/03ce080ad97029cfc9eef7522183313f1ca6c2d3 differ
diff --git a/test/de_fuzz/corpus/045a1eefc4794466a95d88258d9ef04770d73185 b/test/de_fuzz/corpus/045a1eefc4794466a95d88258d9ef04770d73185
new file mode 100644
index 00000000..5ea12deb
Binary files /dev/null and b/test/de_fuzz/corpus/045a1eefc4794466a95d88258d9ef04770d73185 differ
diff --git a/test/de_fuzz/corpus/0493029275f5fd15bdbdeb0cecc75446e6129b5f b/test/de_fuzz/corpus/0493029275f5fd15bdbdeb0cecc75446e6129b5f
new file mode 100644
index 00000000..67983efc
Binary files /dev/null and b/test/de_fuzz/corpus/0493029275f5fd15bdbdeb0cecc75446e6129b5f differ
diff --git a/test/de_fuzz/corpus/04a5b0fee5ba00981cfa30fb43699627807c5cbc b/test/de_fuzz/corpus/04a5b0fee5ba00981cfa30fb43699627807c5cbc
new file mode 100644
index 00000000..dc3045e3
Binary files /dev/null and b/test/de_fuzz/corpus/04a5b0fee5ba00981cfa30fb43699627807c5cbc differ
diff --git a/test/de_fuzz/corpus/04aef19f0180da14df8d2bcc28635eed295c6af8 b/test/de_fuzz/corpus/04aef19f0180da14df8d2bcc28635eed295c6af8
new file mode 100644
index 00000000..a582a308
Binary files /dev/null and b/test/de_fuzz/corpus/04aef19f0180da14df8d2bcc28635eed295c6af8 differ
diff --git a/test/de_fuzz/corpus/04c166cc1bf6fc1f396da3060e44e2651d37fa50 b/test/de_fuzz/corpus/04c166cc1bf6fc1f396da3060e44e2651d37fa50
new file mode 100644
index 00000000..268aed64
Binary files /dev/null and b/test/de_fuzz/corpus/04c166cc1bf6fc1f396da3060e44e2651d37fa50 differ
diff --git a/test/de_fuzz/corpus/04ee7e168599133f68121b7560dc006209927d0e b/test/de_fuzz/corpus/04ee7e168599133f68121b7560dc006209927d0e
new file mode 100644
index 00000000..a8d27031
Binary files /dev/null and b/test/de_fuzz/corpus/04ee7e168599133f68121b7560dc006209927d0e differ
diff --git a/test/de_fuzz/corpus/04fc8bac2ae97c2f41cf8ba47deae7d2269d9ef5 b/test/de_fuzz/corpus/04fc8bac2ae97c2f41cf8ba47deae7d2269d9ef5
new file mode 100644
index 00000000..75f4d520
Binary files /dev/null and b/test/de_fuzz/corpus/04fc8bac2ae97c2f41cf8ba47deae7d2269d9ef5 differ
diff --git a/test/de_fuzz/corpus/052e71789f1e90175615dfd24fe118b1a1158673 b/test/de_fuzz/corpus/052e71789f1e90175615dfd24fe118b1a1158673
new file mode 100644
index 00000000..7139f2c3
Binary files /dev/null and b/test/de_fuzz/corpus/052e71789f1e90175615dfd24fe118b1a1158673 differ
diff --git a/test/de_fuzz/corpus/0537a45a09b74990c25c0511657488fadefd84f6 b/test/de_fuzz/corpus/0537a45a09b74990c25c0511657488fadefd84f6
new file mode 100644
index 00000000..42147812
Binary files /dev/null and b/test/de_fuzz/corpus/0537a45a09b74990c25c0511657488fadefd84f6 differ
diff --git a/test/de_fuzz/corpus/0548a644f332978b8d884616855535c6b8a503d9 b/test/de_fuzz/corpus/0548a644f332978b8d884616855535c6b8a503d9
new file mode 100644
index 00000000..8cb3c723
Binary files /dev/null and b/test/de_fuzz/corpus/0548a644f332978b8d884616855535c6b8a503d9 differ
diff --git a/test/de_fuzz/corpus/055958c72de0a99f046371f1f0c86d99990c0729 b/test/de_fuzz/corpus/055958c72de0a99f046371f1f0c86d99990c0729
new file mode 100644
index 00000000..d4b570b5
Binary files /dev/null and b/test/de_fuzz/corpus/055958c72de0a99f046371f1f0c86d99990c0729 differ
diff --git a/test/de_fuzz/corpus/057bcec01e2afc4cae4d007ead424c189e2cebe3 b/test/de_fuzz/corpus/057bcec01e2afc4cae4d007ead424c189e2cebe3
new file mode 100644
index 00000000..8f1b828b
Binary files /dev/null and b/test/de_fuzz/corpus/057bcec01e2afc4cae4d007ead424c189e2cebe3 differ
diff --git a/test/de_fuzz/corpus/05cb2c374cbbf2e671db840189026b71a3a4783c b/test/de_fuzz/corpus/05cb2c374cbbf2e671db840189026b71a3a4783c
new file mode 100644
index 00000000..3359b3b5
Binary files /dev/null and b/test/de_fuzz/corpus/05cb2c374cbbf2e671db840189026b71a3a4783c differ
diff --git a/test/de_fuzz/corpus/060d2fbcaf8334670802325e0dc9784379fb09a6 b/test/de_fuzz/corpus/060d2fbcaf8334670802325e0dc9784379fb09a6
new file mode 100644
index 00000000..4474236d
Binary files /dev/null and b/test/de_fuzz/corpus/060d2fbcaf8334670802325e0dc9784379fb09a6 differ
diff --git a/test/de_fuzz/corpus/065dc7b9683107bb0fdeee1ad147ca33421b4eda b/test/de_fuzz/corpus/065dc7b9683107bb0fdeee1ad147ca33421b4eda
new file mode 100644
index 00000000..1d6ace06
Binary files /dev/null and b/test/de_fuzz/corpus/065dc7b9683107bb0fdeee1ad147ca33421b4eda differ
diff --git a/test/de_fuzz/corpus/066a2cab0d331ac0605ded494bad5ce5c37f41be b/test/de_fuzz/corpus/066a2cab0d331ac0605ded494bad5ce5c37f41be
new file mode 100644
index 00000000..78d3f183
Binary files /dev/null and b/test/de_fuzz/corpus/066a2cab0d331ac0605ded494bad5ce5c37f41be differ
diff --git a/test/de_fuzz/corpus/06705f7adc42a06bfa772929ad0cf82b511cc653 b/test/de_fuzz/corpus/06705f7adc42a06bfa772929ad0cf82b511cc653
new file mode 100644
index 00000000..b240ca6d
Binary files /dev/null and b/test/de_fuzz/corpus/06705f7adc42a06bfa772929ad0cf82b511cc653 differ
diff --git a/test/de_fuzz/corpus/0676b9e95ffea4d9be47eb4c08b53f7e8232ec61 b/test/de_fuzz/corpus/0676b9e95ffea4d9be47eb4c08b53f7e8232ec61
new file mode 100644
index 00000000..e38003b5
Binary files /dev/null and b/test/de_fuzz/corpus/0676b9e95ffea4d9be47eb4c08b53f7e8232ec61 differ
diff --git a/test/de_fuzz/corpus/06a24e5d1f0e7df307ebbb0b4008608ad03391b3 b/test/de_fuzz/corpus/06a24e5d1f0e7df307ebbb0b4008608ad03391b3
new file mode 100644
index 00000000..9e9bcb6c
Binary files /dev/null and b/test/de_fuzz/corpus/06a24e5d1f0e7df307ebbb0b4008608ad03391b3 differ
diff --git a/test/de_fuzz/corpus/06b7a2445e03005d105a6b760d80ca7a0ac495ee b/test/de_fuzz/corpus/06b7a2445e03005d105a6b760d80ca7a0ac495ee
new file mode 100644
index 00000000..4dde6de6
Binary files /dev/null and b/test/de_fuzz/corpus/06b7a2445e03005d105a6b760d80ca7a0ac495ee differ
diff --git a/test/de_fuzz/corpus/0708c60582050542ce192567ee739c8dbe486f13 b/test/de_fuzz/corpus/0708c60582050542ce192567ee739c8dbe486f13
new file mode 100644
index 00000000..3417c395
Binary files /dev/null and b/test/de_fuzz/corpus/0708c60582050542ce192567ee739c8dbe486f13 differ
diff --git a/test/de_fuzz/corpus/071134750dc8021e4baf15058fe2f9992a7ce222 b/test/de_fuzz/corpus/071134750dc8021e4baf15058fe2f9992a7ce222
new file mode 100644
index 00000000..710b3ea5
Binary files /dev/null and b/test/de_fuzz/corpus/071134750dc8021e4baf15058fe2f9992a7ce222 differ
diff --git a/test/de_fuzz/corpus/07284125555baeddc03d1a3637df0ccbcab9d5fb b/test/de_fuzz/corpus/07284125555baeddc03d1a3637df0ccbcab9d5fb
new file mode 100644
index 00000000..dab44710
--- /dev/null
+++ b/test/de_fuzz/corpus/07284125555baeddc03d1a3637df0ccbcab9d5fb
@@ -0,0 +1 @@
+Z(((((((a+)+)+)+)+ßÔÖÔ)+|Y(((((((a+)+)+)+)+)++)+)|X(((((((a+)+)+)+)+)+)+)+|W((Ú×(((a+)+)+)+)+)+)+)+;|V((()++)+)+|CW(((((((a+)+)+)+((((a+)+)+)+)+)+)+)+|CZ(((((((a+)+)+)+)+)+)+)+|CY(((((((a+)+)+)+)+)+)+)+|CX(((((((a+)+)+)+)+)+)+)+|CW(((((((a+)+)+)+)+)+)+)+|CV,((((((a+)+)+)+)+)+)+)+|(a+)+bc
\ No newline at end of file
diff --git a/test/de_fuzz/corpus/073f4fc7f030f84f79bdc127e67339ae62070436 b/test/de_fuzz/corpus/073f4fc7f030f84f79bdc127e67339ae62070436
new file mode 100644
index 00000000..5d203a29
Binary files /dev/null and b/test/de_fuzz/corpus/073f4fc7f030f84f79bdc127e67339ae62070436 differ
diff --git a/test/de_fuzz/corpus/075ed1f68bdaff705e9ecfd624a98c583ac5e04f b/test/de_fuzz/corpus/075ed1f68bdaff705e9ecfd624a98c583ac5e04f
new file mode 100644
index 00000000..e3fcfae8
Binary files /dev/null and b/test/de_fuzz/corpus/075ed1f68bdaff705e9ecfd624a98c583ac5e04f differ
diff --git a/test/de_fuzz/corpus/076187a0bc2ed6e90aab84375d0deca711b61a91 b/test/de_fuzz/corpus/076187a0bc2ed6e90aab84375d0deca711b61a91
new file mode 100644
index 00000000..52f6fd53
Binary files /dev/null and b/test/de_fuzz/corpus/076187a0bc2ed6e90aab84375d0deca711b61a91 differ
diff --git a/test/de_fuzz/corpus/077ce191a9e857d7a3a3b4e53fbb50a08000ecf0 b/test/de_fuzz/corpus/077ce191a9e857d7a3a3b4e53fbb50a08000ecf0
new file mode 100644
index 00000000..83dc8896
Binary files /dev/null and b/test/de_fuzz/corpus/077ce191a9e857d7a3a3b4e53fbb50a08000ecf0 differ
diff --git a/test/de_fuzz/corpus/07b2a1c92c817aae0a115bb15b33274cbaac308a b/test/de_fuzz/corpus/07b2a1c92c817aae0a115bb15b33274cbaac308a
new file mode 100644
index 00000000..bb0275ae
Binary files /dev/null and b/test/de_fuzz/corpus/07b2a1c92c817aae0a115bb15b33274cbaac308a differ
diff --git a/test/de_fuzz/corpus/07c70aa5c262fdd076e5ec1e59e63d9f8cedaea8 b/test/de_fuzz/corpus/07c70aa5c262fdd076e5ec1e59e63d9f8cedaea8
new file mode 100644
index 00000000..6bf3e025
Binary files /dev/null and b/test/de_fuzz/corpus/07c70aa5c262fdd076e5ec1e59e63d9f8cedaea8 differ
diff --git a/test/de_fuzz/corpus/07e5d0b2ec1cbc9040495889dde36395e3ce8a85 b/test/de_fuzz/corpus/07e5d0b2ec1cbc9040495889dde36395e3ce8a85
new file mode 100644
index 00000000..7a79a709
Binary files /dev/null and b/test/de_fuzz/corpus/07e5d0b2ec1cbc9040495889dde36395e3ce8a85 differ
diff --git a/test/de_fuzz/corpus/07f38543e3f8cb6ab88d497b0264801e4a5ff751 b/test/de_fuzz/corpus/07f38543e3f8cb6ab88d497b0264801e4a5ff751
new file mode 100644
index 00000000..398364bd
Binary files /dev/null and b/test/de_fuzz/corpus/07f38543e3f8cb6ab88d497b0264801e4a5ff751 differ
diff --git a/test/de_fuzz/corpus/08002fe03259270af10b36c8ddeacff162cf16b8 b/test/de_fuzz/corpus/08002fe03259270af10b36c8ddeacff162cf16b8
new file mode 100644
index 00000000..3b8688b2
Binary files /dev/null and b/test/de_fuzz/corpus/08002fe03259270af10b36c8ddeacff162cf16b8 differ
diff --git a/test/de_fuzz/corpus/081858d1769f43413a1f09fedf1a0cf1c3f72b22 b/test/de_fuzz/corpus/081858d1769f43413a1f09fedf1a0cf1c3f72b22
new file mode 100644
index 00000000..79d3c445
Binary files /dev/null and b/test/de_fuzz/corpus/081858d1769f43413a1f09fedf1a0cf1c3f72b22 differ
diff --git a/test/de_fuzz/corpus/082c2d2030263ff2b818ea7f0aaf98f7470283f6 b/test/de_fuzz/corpus/082c2d2030263ff2b818ea7f0aaf98f7470283f6
new file mode 100644
index 00000000..5bf8fd4f
Binary files /dev/null and b/test/de_fuzz/corpus/082c2d2030263ff2b818ea7f0aaf98f7470283f6 differ
diff --git a/test/de_fuzz/corpus/08549ccfa0aa75f14ca42c08197ca1e87e660823 b/test/de_fuzz/corpus/08549ccfa0aa75f14ca42c08197ca1e87e660823
new file mode 100644
index 00000000..d780de8f
Binary files /dev/null and b/test/de_fuzz/corpus/08549ccfa0aa75f14ca42c08197ca1e87e660823 differ
diff --git a/test/de_fuzz/corpus/0868c65e2e25e7360ebcd1719625fb0a361abfaa b/test/de_fuzz/corpus/0868c65e2e25e7360ebcd1719625fb0a361abfaa
new file mode 100644
index 00000000..9b12519a
Binary files /dev/null and b/test/de_fuzz/corpus/0868c65e2e25e7360ebcd1719625fb0a361abfaa differ
diff --git a/test/de_fuzz/corpus/08691288da54da0cf22ea7d640ced09164743765 b/test/de_fuzz/corpus/08691288da54da0cf22ea7d640ced09164743765
new file mode 100644
index 00000000..b4b5fdf1
Binary files /dev/null and b/test/de_fuzz/corpus/08691288da54da0cf22ea7d640ced09164743765 differ
diff --git a/test/de_fuzz/corpus/087425b8873de5a19c59ed5467aa5de9ba7de6ca b/test/de_fuzz/corpus/087425b8873de5a19c59ed5467aa5de9ba7de6ca
new file mode 100644
index 00000000..71f2a837
Binary files /dev/null and b/test/de_fuzz/corpus/087425b8873de5a19c59ed5467aa5de9ba7de6ca differ
diff --git a/test/de_fuzz/corpus/088d22d0e6de8af18ff45d377f04ff3658e0fc80 b/test/de_fuzz/corpus/088d22d0e6de8af18ff45d377f04ff3658e0fc80
new file mode 100644
index 00000000..a54c8044
Binary files /dev/null and b/test/de_fuzz/corpus/088d22d0e6de8af18ff45d377f04ff3658e0fc80 differ
diff --git a/test/de_fuzz/corpus/08940162707893743187e4ab470ed1008612797a b/test/de_fuzz/corpus/08940162707893743187e4ab470ed1008612797a
new file mode 100644
index 00000000..42e5511c
Binary files /dev/null and b/test/de_fuzz/corpus/08940162707893743187e4ab470ed1008612797a differ
diff --git a/test/de_fuzz/corpus/09180d4e440031e219479ca15da050462c00a908 b/test/de_fuzz/corpus/09180d4e440031e219479ca15da050462c00a908
new file mode 100644
index 00000000..76dca796
Binary files /dev/null and b/test/de_fuzz/corpus/09180d4e440031e219479ca15da050462c00a908 differ
diff --git a/test/de_fuzz/corpus/093d19b2925541ea312fa2059f264124a35944b7 b/test/de_fuzz/corpus/093d19b2925541ea312fa2059f264124a35944b7
new file mode 100644
index 00000000..cbf20f20
Binary files /dev/null and b/test/de_fuzz/corpus/093d19b2925541ea312fa2059f264124a35944b7 differ
diff --git a/test/de_fuzz/corpus/094d59eb83cc607c8c529c495210f83aa2887fbd b/test/de_fuzz/corpus/094d59eb83cc607c8c529c495210f83aa2887fbd
new file mode 100644
index 00000000..c315802c
Binary files /dev/null and b/test/de_fuzz/corpus/094d59eb83cc607c8c529c495210f83aa2887fbd differ
diff --git a/test/de_fuzz/corpus/0952b1e6ba0a9beaee02b92efa1990eb8fd855ed b/test/de_fuzz/corpus/0952b1e6ba0a9beaee02b92efa1990eb8fd855ed
new file mode 100644
index 00000000..fc585003
Binary files /dev/null and b/test/de_fuzz/corpus/0952b1e6ba0a9beaee02b92efa1990eb8fd855ed differ
diff --git a/test/de_fuzz/corpus/09692b8dcf066440274ea5d939aec16eccb10de8 b/test/de_fuzz/corpus/09692b8dcf066440274ea5d939aec16eccb10de8
new file mode 100644
index 00000000..6a2065f8
Binary files /dev/null and b/test/de_fuzz/corpus/09692b8dcf066440274ea5d939aec16eccb10de8 differ
diff --git a/test/de_fuzz/corpus/098478e68695340652d4d2e9ed11fbbedad69e63 b/test/de_fuzz/corpus/098478e68695340652d4d2e9ed11fbbedad69e63
new file mode 100644
index 00000000..c5936c92
Binary files /dev/null and b/test/de_fuzz/corpus/098478e68695340652d4d2e9ed11fbbedad69e63 differ
diff --git a/test/de_fuzz/corpus/0985d13f526884e37b5074e8da192ba63f3ec18c b/test/de_fuzz/corpus/0985d13f526884e37b5074e8da192ba63f3ec18c
new file mode 100644
index 00000000..86211145
Binary files /dev/null and b/test/de_fuzz/corpus/0985d13f526884e37b5074e8da192ba63f3ec18c differ
diff --git a/test/de_fuzz/corpus/098b4f661d78550dbe871aa6d2e5474910365a92 b/test/de_fuzz/corpus/098b4f661d78550dbe871aa6d2e5474910365a92
new file mode 100644
index 00000000..842b2896
Binary files /dev/null and b/test/de_fuzz/corpus/098b4f661d78550dbe871aa6d2e5474910365a92 differ
diff --git a/test/de_fuzz/corpus/0996713c1213c4a3e8a8581bf0fc5cb43f0d9c84 b/test/de_fuzz/corpus/0996713c1213c4a3e8a8581bf0fc5cb43f0d9c84
new file mode 100644
index 00000000..b2857420
Binary files /dev/null and b/test/de_fuzz/corpus/0996713c1213c4a3e8a8581bf0fc5cb43f0d9c84 differ
diff --git a/test/de_fuzz/corpus/09c39db7ced2e00411bd9bb69e27833c6aa2d47b b/test/de_fuzz/corpus/09c39db7ced2e00411bd9bb69e27833c6aa2d47b
new file mode 100644
index 00000000..83ff147e
Binary files /dev/null and b/test/de_fuzz/corpus/09c39db7ced2e00411bd9bb69e27833c6aa2d47b differ
diff --git a/test/de_fuzz/corpus/09d1332a1130a84c97303b9c0f8f5c1d22ccd335 b/test/de_fuzz/corpus/09d1332a1130a84c97303b9c0f8f5c1d22ccd335
new file mode 100644
index 00000000..3f032ece
Binary files /dev/null and b/test/de_fuzz/corpus/09d1332a1130a84c97303b9c0f8f5c1d22ccd335 differ
diff --git a/test/de_fuzz/corpus/09ddbffe27633f26351167c38ef10a942862462f b/test/de_fuzz/corpus/09ddbffe27633f26351167c38ef10a942862462f
new file mode 100644
index 00000000..486b7b90
--- /dev/null
+++ b/test/de_fuzz/corpus/09ddbffe27633f26351167c38ef10a942862462f
@@ -0,0 +1 @@
+8^\l*(?:((.Ô*?)\W*(?1)\§*\2[abc]| |((.)\)W*(?1)\W*\4|\ZZZZZZZZZZZZZZZZZZZZZZÿÿÿÿÿÿÿÿÿÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\pd\)W*(?1)\W*\4|\ZZZZZZZZZZZZZZZZZZZZZZÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\pdÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\pdquick brown )ox
\ No newline at end of file
diff --git a/test/de_fuzz/corpus/09f341b84c20552c905d21c138b184697fab337d b/test/de_fuzz/corpus/09f341b84c20552c905d21c138b184697fab337d
new file mode 100644
index 00000000..ea3a6c8d
Binary files /dev/null and b/test/de_fuzz/corpus/09f341b84c20552c905d21c138b184697fab337d differ
diff --git a/test/de_fuzz/corpus/0a04d9267fb8188a0920d5941c62dfcaa392b697 b/test/de_fuzz/corpus/0a04d9267fb8188a0920d5941c62dfcaa392b697
new file mode 100644
index 00000000..bfbf38bb
Binary files /dev/null and b/test/de_fuzz/corpus/0a04d9267fb8188a0920d5941c62dfcaa392b697 differ
diff --git a/test/de_fuzz/corpus/0a232c490b266ab32e15a6092c70ebc3dfda6ecc b/test/de_fuzz/corpus/0a232c490b266ab32e15a6092c70ebc3dfda6ecc
new file mode 100644
index 00000000..38d11d18
Binary files /dev/null and b/test/de_fuzz/corpus/0a232c490b266ab32e15a6092c70ebc3dfda6ecc differ
diff --git a/test/de_fuzz/corpus/0a34e1a8ea9da61a014714961b9818082c4f84be b/test/de_fuzz/corpus/0a34e1a8ea9da61a014714961b9818082c4f84be
new file mode 100644
index 00000000..06016ebc
Binary files /dev/null and b/test/de_fuzz/corpus/0a34e1a8ea9da61a014714961b9818082c4f84be differ
diff --git a/test/de_fuzz/corpus/0a6ddeb7f27dec9f32913eed61df082aa928c8e7 b/test/de_fuzz/corpus/0a6ddeb7f27dec9f32913eed61df082aa928c8e7
new file mode 100644
index 00000000..337bf4fd
Binary files /dev/null and b/test/de_fuzz/corpus/0a6ddeb7f27dec9f32913eed61df082aa928c8e7 differ
diff --git a/test/de_fuzz/corpus/0a6f08a511f7fbfe66ca6cf7f98bb5af2f7ef5b8 b/test/de_fuzz/corpus/0a6f08a511f7fbfe66ca6cf7f98bb5af2f7ef5b8
new file mode 100644
index 00000000..74d8d014
Binary files /dev/null and b/test/de_fuzz/corpus/0a6f08a511f7fbfe66ca6cf7f98bb5af2f7ef5b8 differ
diff --git a/test/de_fuzz/corpus/0a87a305f83262f88a9e826ca5aa22780faf0f6e b/test/de_fuzz/corpus/0a87a305f83262f88a9e826ca5aa22780faf0f6e
new file mode 100644
index 00000000..c99cf649
Binary files /dev/null and b/test/de_fuzz/corpus/0a87a305f83262f88a9e826ca5aa22780faf0f6e differ
diff --git a/test/de_fuzz/corpus/0aae4febecef099e54707b7f8d59b50e70b1cd7c b/test/de_fuzz/corpus/0aae4febecef099e54707b7f8d59b50e70b1cd7c
new file mode 100644
index 00000000..79bc3100
Binary files /dev/null and b/test/de_fuzz/corpus/0aae4febecef099e54707b7f8d59b50e70b1cd7c differ
diff --git a/test/de_fuzz/corpus/0ad25b2429db480add874a5d66e4934a53a4f5d8 b/test/de_fuzz/corpus/0ad25b2429db480add874a5d66e4934a53a4f5d8
new file mode 100644
index 00000000..efb85bac
Binary files /dev/null and b/test/de_fuzz/corpus/0ad25b2429db480add874a5d66e4934a53a4f5d8 differ
diff --git a/test/de_fuzz/corpus/0b7e65a2f97ea6135e0c46e75494a6dc0302192a b/test/de_fuzz/corpus/0b7e65a2f97ea6135e0c46e75494a6dc0302192a
new file mode 100644
index 00000000..c8aa5d6a
--- /dev/null
+++ b/test/de_fuzz/corpus/0b7e65a2f97ea6135e0c46e75494a6dc0302192a
@@ -0,0 +1,73 @@
+'è (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* # optional leading comment
+(?: (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+) # initial word
+(?: (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. (?: [\040\t] | \(\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+) # initial word
+(?: (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+) )* # further okay, if led by a period
+(?: (\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* @ (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # initial subdomain
+(?: #
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. # if led by a period...
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\04²)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # ...further okay
+)*
+# address spec
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] ^ | \\[\x80-\xff] )* \) )*
+\) )* > # trailing >
+# name and address
+) (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* # optional trailing comment
+
+
\ No newline at end of file
diff --git a/test/de_fuzz/corpus/0baba80b8fa0e2cad243b9d2991c91a0b21d391d b/test/de_fuzz/corpus/0baba80b8fa0e2cad243b9d2991c91a0b21d391d
new file mode 100644
index 00000000..973120c0
Binary files /dev/null and b/test/de_fuzz/corpus/0baba80b8fa0e2cad243b9d2991c91a0b21d391d differ
diff --git a/test/de_fuzz/corpus/0bb4fd18738ae9cb066d360c1c38dc24820f5381 b/test/de_fuzz/corpus/0bb4fd18738ae9cb066d360c1c38dc24820f5381
new file mode 100644
index 00000000..28e12fd3
Binary files /dev/null and b/test/de_fuzz/corpus/0bb4fd18738ae9cb066d360c1c38dc24820f5381 differ
diff --git a/test/de_fuzz/corpus/0bd42ee87aa348ffb47ee72562020e9adcf886e4 b/test/de_fuzz/corpus/0bd42ee87aa348ffb47ee72562020e9adcf886e4
new file mode 100644
index 00000000..39264909
Binary files /dev/null and b/test/de_fuzz/corpus/0bd42ee87aa348ffb47ee72562020e9adcf886e4 differ
diff --git a/test/de_fuzz/corpus/0be4c37157dd87807e33cc455664ea3edc87fcb9 b/test/de_fuzz/corpus/0be4c37157dd87807e33cc455664ea3edc87fcb9
new file mode 100644
index 00000000..25532c96
Binary files /dev/null and b/test/de_fuzz/corpus/0be4c37157dd87807e33cc455664ea3edc87fcb9 differ
diff --git a/test/de_fuzz/corpus/0c21cc667e1c54469593a46af58f9b0c5eb22074 b/test/de_fuzz/corpus/0c21cc667e1c54469593a46af58f9b0c5eb22074
new file mode 100644
index 00000000..f159b61d
Binary files /dev/null and b/test/de_fuzz/corpus/0c21cc667e1c54469593a46af58f9b0c5eb22074 differ
diff --git a/test/de_fuzz/corpus/0c2206f5e288d5608e7a14c3b2cf9d1c0fb2a70b b/test/de_fuzz/corpus/0c2206f5e288d5608e7a14c3b2cf9d1c0fb2a70b
new file mode 100644
index 00000000..9bcdb286
Binary files /dev/null and b/test/de_fuzz/corpus/0c2206f5e288d5608e7a14c3b2cf9d1c0fb2a70b differ
diff --git a/test/de_fuzz/corpus/0c2647784524e70a77b3e8e6346595096d11c170 b/test/de_fuzz/corpus/0c2647784524e70a77b3e8e6346595096d11c170
new file mode 100644
index 00000000..c31633c3
Binary files /dev/null and b/test/de_fuzz/corpus/0c2647784524e70a77b3e8e6346595096d11c170 differ
diff --git a/test/de_fuzz/corpus/0c645708b0e1041a59d5a0e533b85789cf49c7e3 b/test/de_fuzz/corpus/0c645708b0e1041a59d5a0e533b85789cf49c7e3
new file mode 100644
index 00000000..60de957e
Binary files /dev/null and b/test/de_fuzz/corpus/0c645708b0e1041a59d5a0e533b85789cf49c7e3 differ
diff --git a/test/de_fuzz/corpus/0c67a3fca4ff4872b6e087961bdf483fc011231c b/test/de_fuzz/corpus/0c67a3fca4ff4872b6e087961bdf483fc011231c
new file mode 100644
index 00000000..abae36b2
Binary files /dev/null and b/test/de_fuzz/corpus/0c67a3fca4ff4872b6e087961bdf483fc011231c differ
diff --git a/test/de_fuzz/corpus/0c7a0343024c3ffe98772956a3b869fa86b1a3dd b/test/de_fuzz/corpus/0c7a0343024c3ffe98772956a3b869fa86b1a3dd
new file mode 100644
index 00000000..ecc0845c
Binary files /dev/null and b/test/de_fuzz/corpus/0c7a0343024c3ffe98772956a3b869fa86b1a3dd differ
diff --git a/test/de_fuzz/corpus/0c7bd5399d66f25dbac2564e1e228087073d1947 b/test/de_fuzz/corpus/0c7bd5399d66f25dbac2564e1e228087073d1947
new file mode 100644
index 00000000..458f4953
Binary files /dev/null and b/test/de_fuzz/corpus/0c7bd5399d66f25dbac2564e1e228087073d1947 differ
diff --git a/test/de_fuzz/corpus/0c7da13722ae339c91a8a2d08dd672fb583c2761 b/test/de_fuzz/corpus/0c7da13722ae339c91a8a2d08dd672fb583c2761
new file mode 100644
index 00000000..e86fb91c
Binary files /dev/null and b/test/de_fuzz/corpus/0c7da13722ae339c91a8a2d08dd672fb583c2761 differ
diff --git a/test/de_fuzz/corpus/0c8913875f7a31eae546b23e17592b9c98d7c186 b/test/de_fuzz/corpus/0c8913875f7a31eae546b23e17592b9c98d7c186
new file mode 100644
index 00000000..c7f5655a
Binary files /dev/null and b/test/de_fuzz/corpus/0c8913875f7a31eae546b23e17592b9c98d7c186 differ
diff --git a/test/de_fuzz/corpus/0cc20b42a7b02a74aff4cdaf7ca6dd195bb669f8 b/test/de_fuzz/corpus/0cc20b42a7b02a74aff4cdaf7ca6dd195bb669f8
new file mode 100644
index 00000000..1f3b5691
Binary files /dev/null and b/test/de_fuzz/corpus/0cc20b42a7b02a74aff4cdaf7ca6dd195bb669f8 differ
diff --git a/test/de_fuzz/corpus/0cc2de659fc88f690911640e6e169e60b42ff163 b/test/de_fuzz/corpus/0cc2de659fc88f690911640e6e169e60b42ff163
new file mode 100644
index 00000000..f5337842
Binary files /dev/null and b/test/de_fuzz/corpus/0cc2de659fc88f690911640e6e169e60b42ff163 differ
diff --git a/test/de_fuzz/corpus/0cc89d28fb9a623b0a291913b50468c5e820d906 b/test/de_fuzz/corpus/0cc89d28fb9a623b0a291913b50468c5e820d906
new file mode 100644
index 00000000..3ecaba75
Binary files /dev/null and b/test/de_fuzz/corpus/0cc89d28fb9a623b0a291913b50468c5e820d906 differ
diff --git a/test/de_fuzz/corpus/0ce83d2f8eb3bf46aa65093a0a4a0599bc69e095 b/test/de_fuzz/corpus/0ce83d2f8eb3bf46aa65093a0a4a0599bc69e095
new file mode 100644
index 00000000..7740e601
--- /dev/null
+++ b/test/de_fuzz/corpus/0ce83d2f8eb3bf46aa65093a0a4a0599bc69e095
@@ -0,0 +1 @@
+(?$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$(R&one),
\ No newline at end of file
diff --git a/test/de_fuzz/corpus/0d1a15ca92dbbadb001053d78eca6b5863334423 b/test/de_fuzz/corpus/0d1a15ca92dbbadb001053d78eca6b5863334423
new file mode 100644
index 00000000..e8ee5c6c
Binary files /dev/null and b/test/de_fuzz/corpus/0d1a15ca92dbbadb001053d78eca6b5863334423 differ
diff --git a/test/de_fuzz/corpus/0d367d787b01ad91cbbe1c28224868c661c565ae b/test/de_fuzz/corpus/0d367d787b01ad91cbbe1c28224868c661c565ae
new file mode 100644
index 00000000..e53b0711
Binary files /dev/null and b/test/de_fuzz/corpus/0d367d787b01ad91cbbe1c28224868c661c565ae differ
diff --git a/test/de_fuzz/corpus/0d43d437aab0b9d587e4eb76715fcb54b2e6c89b b/test/de_fuzz/corpus/0d43d437aab0b9d587e4eb76715fcb54b2e6c89b
new file mode 100644
index 00000000..664be4e4
Binary files /dev/null and b/test/de_fuzz/corpus/0d43d437aab0b9d587e4eb76715fcb54b2e6c89b differ
diff --git a/test/de_fuzz/corpus/0db370fce3a7bc068e0ad83a97bcfc23e139ae78 b/test/de_fuzz/corpus/0db370fce3a7bc068e0ad83a97bcfc23e139ae78
new file mode 100644
index 00000000..ecc5bca0
Binary files /dev/null and b/test/de_fuzz/corpus/0db370fce3a7bc068e0ad83a97bcfc23e139ae78 differ
diff --git a/test/de_fuzz/corpus/0dd1ccb059b18661325c08a8dfa899c3f3b6e622 b/test/de_fuzz/corpus/0dd1ccb059b18661325c08a8dfa899c3f3b6e622
new file mode 100644
index 00000000..8246e99c
Binary files /dev/null and b/test/de_fuzz/corpus/0dd1ccb059b18661325c08a8dfa899c3f3b6e622 differ
diff --git a/test/de_fuzz/corpus/0dff025fac5990aac386e58ff7ffdab7db1141e2 b/test/de_fuzz/corpus/0dff025fac5990aac386e58ff7ffdab7db1141e2
new file mode 100644
index 00000000..4e965694
Binary files /dev/null and b/test/de_fuzz/corpus/0dff025fac5990aac386e58ff7ffdab7db1141e2 differ
diff --git a/test/de_fuzz/corpus/0e30978bc205b9c94272e59930a79b8f55da6a52 b/test/de_fuzz/corpus/0e30978bc205b9c94272e59930a79b8f55da6a52
new file mode 100644
index 00000000..4a1a3890
--- /dev/null
+++ b/test/de_fuzz/corpus/0e30978bc205b9c94272e59930a79b8f55da6a52
@@ -0,0 +1 @@
+Z(((((((a+)+)+)+)+)+)+)+|Y(((((((a+)+)+)+)+)+)+(((((((a+)+)+)+)+)+)+)+|V(((((((a+)+)+)+)+)+)+)+|CZ(((((((a+)+)+)Ï)+)+)+)+|CY(((((((a+)+)+)+)+)+)+)+|CX((('(((a+)+)+)IS3)+)+)+|CW((((((ëa+)+)+)+)+)+)+)+|CV(((((((a+)+)+)+)+)+)+)+|(a+)+bc
\ No newline at end of file
diff --git a/test/de_fuzz/corpus/0e80a0f63325b1038a046fab2658af6b2fff70bc b/test/de_fuzz/corpus/0e80a0f63325b1038a046fab2658af6b2fff70bc
new file mode 100644
index 00000000..bfecf4d4
Binary files /dev/null and b/test/de_fuzz/corpus/0e80a0f63325b1038a046fab2658af6b2fff70bc differ
diff --git a/test/de_fuzz/corpus/0e8628917eb343bfe6937f81016bed4765403f62 b/test/de_fuzz/corpus/0e8628917eb343bfe6937f81016bed4765403f62
new file mode 100644
index 00000000..05e044ba
Binary files /dev/null and b/test/de_fuzz/corpus/0e8628917eb343bfe6937f81016bed4765403f62 differ
diff --git a/test/de_fuzz/corpus/0e8b477a7521fff0f1109ea80005b5ad72b1a302 b/test/de_fuzz/corpus/0e8b477a7521fff0f1109ea80005b5ad72b1a302
new file mode 100644
index 00000000..b256ac39
Binary files /dev/null and b/test/de_fuzz/corpus/0e8b477a7521fff0f1109ea80005b5ad72b1a302 differ
diff --git a/test/de_fuzz/corpus/0f2b4bdf7f5961fdcd9914e42190c6a89abe497c b/test/de_fuzz/corpus/0f2b4bdf7f5961fdcd9914e42190c6a89abe497c
new file mode 100644
index 00000000..e8ca1a6d
Binary files /dev/null and b/test/de_fuzz/corpus/0f2b4bdf7f5961fdcd9914e42190c6a89abe497c differ
diff --git a/test/de_fuzz/corpus/0f7e8f8cfcf591f67e7ae899971378f4cfa8138a b/test/de_fuzz/corpus/0f7e8f8cfcf591f67e7ae899971378f4cfa8138a
new file mode 100644
index 00000000..5fd629a1
Binary files /dev/null and b/test/de_fuzz/corpus/0f7e8f8cfcf591f67e7ae899971378f4cfa8138a differ
diff --git a/test/de_fuzz/corpus/0f8c88f161eb357e02b2f107727219aac47a9d4a b/test/de_fuzz/corpus/0f8c88f161eb357e02b2f107727219aac47a9d4a
new file mode 100644
index 00000000..0466fb2c
Binary files /dev/null and b/test/de_fuzz/corpus/0f8c88f161eb357e02b2f107727219aac47a9d4a differ
diff --git a/test/de_fuzz/corpus/0faadc683a41be4252b58ac5f707f57d3f9f92b3 b/test/de_fuzz/corpus/0faadc683a41be4252b58ac5f707f57d3f9f92b3
new file mode 100644
index 00000000..4724faeb
Binary files /dev/null and b/test/de_fuzz/corpus/0faadc683a41be4252b58ac5f707f57d3f9f92b3 differ
diff --git a/test/de_fuzz/corpus/10061a54a84119112d1129a76c2216f3cab4521b b/test/de_fuzz/corpus/10061a54a84119112d1129a76c2216f3cab4521b
new file mode 100644
index 00000000..46273f17
Binary files /dev/null and b/test/de_fuzz/corpus/10061a54a84119112d1129a76c2216f3cab4521b differ
diff --git a/test/de_fuzz/corpus/103a637a3a371840df9ac76ce2c638eeb8c4699c b/test/de_fuzz/corpus/103a637a3a371840df9ac76ce2c638eeb8c4699c
new file mode 100644
index 00000000..7b726819
Binary files /dev/null and b/test/de_fuzz/corpus/103a637a3a371840df9ac76ce2c638eeb8c4699c differ
diff --git a/test/de_fuzz/corpus/1043b21be4281eef9272e0c5e217a826e75cb8a1 b/test/de_fuzz/corpus/1043b21be4281eef9272e0c5e217a826e75cb8a1
new file mode 100644
index 00000000..d614f639
Binary files /dev/null and b/test/de_fuzz/corpus/1043b21be4281eef9272e0c5e217a826e75cb8a1 differ
diff --git a/test/de_fuzz/corpus/104e22c7aaedc695207755f9f1397362908feda5 b/test/de_fuzz/corpus/104e22c7aaedc695207755f9f1397362908feda5
new file mode 100644
index 00000000..57c0663f
Binary files /dev/null and b/test/de_fuzz/corpus/104e22c7aaedc695207755f9f1397362908feda5 differ
diff --git a/test/de_fuzz/corpus/10b1f01e757ec554b8ae0e101f7ba0782f903d7f b/test/de_fuzz/corpus/10b1f01e757ec554b8ae0e101f7ba0782f903d7f
new file mode 100644
index 00000000..3d7fd3a7
Binary files /dev/null and b/test/de_fuzz/corpus/10b1f01e757ec554b8ae0e101f7ba0782f903d7f differ
diff --git a/test/de_fuzz/corpus/10c49ecf3c635800a0aafc5f5c0a3d22d1efff71 b/test/de_fuzz/corpus/10c49ecf3c635800a0aafc5f5c0a3d22d1efff71
new file mode 100644
index 00000000..c07837a0
Binary files /dev/null and b/test/de_fuzz/corpus/10c49ecf3c635800a0aafc5f5c0a3d22d1efff71 differ
diff --git a/test/de_fuzz/corpus/10dd1b04fe33742cff29e4de8df1bec0c6c4ab61 b/test/de_fuzz/corpus/10dd1b04fe33742cff29e4de8df1bec0c6c4ab61
new file mode 100644
index 00000000..83ac8c53
Binary files /dev/null and b/test/de_fuzz/corpus/10dd1b04fe33742cff29e4de8df1bec0c6c4ab61 differ
diff --git a/test/de_fuzz/corpus/10de178cb7bc7756a9c03db41ad1acbf78e91f16 b/test/de_fuzz/corpus/10de178cb7bc7756a9c03db41ad1acbf78e91f16
new file mode 100644
index 00000000..9238f56f
Binary files /dev/null and b/test/de_fuzz/corpus/10de178cb7bc7756a9c03db41ad1acbf78e91f16 differ
diff --git a/test/de_fuzz/corpus/10e712dce99fcbfdd3431676261cd39c58122fc7 b/test/de_fuzz/corpus/10e712dce99fcbfdd3431676261cd39c58122fc7
new file mode 100644
index 00000000..d22db6e0
Binary files /dev/null and b/test/de_fuzz/corpus/10e712dce99fcbfdd3431676261cd39c58122fc7 differ
diff --git a/test/de_fuzz/corpus/110689a8e428e39dd520c6864b978641c7e3f7d6 b/test/de_fuzz/corpus/110689a8e428e39dd520c6864b978641c7e3f7d6
new file mode 100644
index 00000000..6aabfcc2
Binary files /dev/null and b/test/de_fuzz/corpus/110689a8e428e39dd520c6864b978641c7e3f7d6 differ
diff --git a/test/de_fuzz/corpus/11290dfd12c4dccada2372a01e91c7fd5f8a2d1b b/test/de_fuzz/corpus/11290dfd12c4dccada2372a01e91c7fd5f8a2d1b
new file mode 100644
index 00000000..e59b387b
Binary files /dev/null and b/test/de_fuzz/corpus/11290dfd12c4dccada2372a01e91c7fd5f8a2d1b differ
diff --git a/test/de_fuzz/corpus/1177c2db24ccda7b21707d0f6604613c87f60dad b/test/de_fuzz/corpus/1177c2db24ccda7b21707d0f6604613c87f60dad
new file mode 100644
index 00000000..e6f55577
Binary files /dev/null and b/test/de_fuzz/corpus/1177c2db24ccda7b21707d0f6604613c87f60dad differ
diff --git a/test/de_fuzz/corpus/1179e15bd4194c48e45b10f29aee374bf8828c98 b/test/de_fuzz/corpus/1179e15bd4194c48e45b10f29aee374bf8828c98
new file mode 100644
index 00000000..210b7446
Binary files /dev/null and b/test/de_fuzz/corpus/1179e15bd4194c48e45b10f29aee374bf8828c98 differ
diff --git a/test/de_fuzz/corpus/11829dec88c87d680430c46252ec9ab14aba9196 b/test/de_fuzz/corpus/11829dec88c87d680430c46252ec9ab14aba9196
new file mode 100644
index 00000000..0cc1ffb6
Binary files /dev/null and b/test/de_fuzz/corpus/11829dec88c87d680430c46252ec9ab14aba9196 differ
diff --git a/test/de_fuzz/corpus/1191862cbed60f993930466603bfc0d502e76380 b/test/de_fuzz/corpus/1191862cbed60f993930466603bfc0d502e76380
new file mode 100644
index 00000000..01ef7e62
Binary files /dev/null and b/test/de_fuzz/corpus/1191862cbed60f993930466603bfc0d502e76380 differ
diff --git a/test/de_fuzz/corpus/11bf73766853583c42584019962adb73a95a092d b/test/de_fuzz/corpus/11bf73766853583c42584019962adb73a95a092d
new file mode 100644
index 00000000..cdea64dc
Binary files /dev/null and b/test/de_fuzz/corpus/11bf73766853583c42584019962adb73a95a092d differ
diff --git a/test/de_fuzz/corpus/11c35ec3be350a0887a60f481b28dbb17c38d009 b/test/de_fuzz/corpus/11c35ec3be350a0887a60f481b28dbb17c38d009
new file mode 100644
index 00000000..947fd6aa
--- /dev/null
+++ b/test/de_fuzz/corpus/11c35ec3be350a0887a60f481b28dbb17c38d009
@@ -0,0 +1,127 @@
+'è (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* # optional le\Qing comment
+(?: (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+) # initial word
+(?: (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^?x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+) )* # further okay, if led by a period
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* @ (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # initial subdomain
+(?: #
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. # if led by a period...
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # ...further okay
+)*
+# address
+| # or
+(?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+) # closing colon
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* )? # optional route
+(?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+) # initial word
+(?: (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+) )* # further okay, if led by a period
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* @ (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # initial subdomain
+(?: #
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x8 address spec
+(?: [\040\t] | \(
+(?: [^\\\x80 # if led by a period...
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # ...further okay
+)*
+# address spec
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* > # trailing >
+# name and address
+) (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* # optional trailing comment
+
+
\ No newline at end of file
diff --git a/test/de_fuzz/corpus/11c43896bd032fa862cc1ffb978cb8a821216b05 b/test/de_fuzz/corpus/11c43896bd032fa862cc1ffb978cb8a821216b05
new file mode 100644
index 00000000..3c3e7e0c
Binary files /dev/null and b/test/de_fuzz/corpus/11c43896bd032fa862cc1ffb978cb8a821216b05 differ
diff --git a/test/de_fuzz/corpus/11dc62c341b2209b65f1800790952b7b1a358cce b/test/de_fuzz/corpus/11dc62c341b2209b65f1800790952b7b1a358cce
new file mode 100644
index 00000000..932ee4d9
Binary files /dev/null and b/test/de_fuzz/corpus/11dc62c341b2209b65f1800790952b7b1a358cce differ
diff --git a/test/de_fuzz/corpus/11dfe4e49ebfa3685bf088c5739a5105e7b931e1 b/test/de_fuzz/corpus/11dfe4e49ebfa3685bf088c5739a5105e7b931e1
new file mode 100644
index 00000000..00d90d3e
Binary files /dev/null and b/test/de_fuzz/corpus/11dfe4e49ebfa3685bf088c5739a5105e7b931e1 differ
diff --git a/test/de_fuzz/corpus/121974eb194c38307d3562d36df8d0e887fcef44 b/test/de_fuzz/corpus/121974eb194c38307d3562d36df8d0e887fcef44
new file mode 100644
index 00000000..dff4384f
Binary files /dev/null and b/test/de_fuzz/corpus/121974eb194c38307d3562d36df8d0e887fcef44 differ
diff --git a/test/de_fuzz/corpus/124a504e9638aadacd3f30198758a1ed1faa97d0 b/test/de_fuzz/corpus/124a504e9638aadacd3f30198758a1ed1faa97d0
new file mode 100644
index 00000000..dfbb24eb
Binary files /dev/null and b/test/de_fuzz/corpus/124a504e9638aadacd3f30198758a1ed1faa97d0 differ
diff --git a/test/de_fuzz/corpus/1259334578ff7621c23d78b9c9a074692e3fb3f6 b/test/de_fuzz/corpus/1259334578ff7621c23d78b9c9a074692e3fb3f6
new file mode 100644
index 00000000..362c11d0
Binary files /dev/null and b/test/de_fuzz/corpus/1259334578ff7621c23d78b9c9a074692e3fb3f6 differ
diff --git a/test/de_fuzz/corpus/1262b36ef669bf7367721e31a3834fbbcbd32b48 b/test/de_fuzz/corpus/1262b36ef669bf7367721e31a3834fbbcbd32b48
new file mode 100644
index 00000000..f28a9fee
Binary files /dev/null and b/test/de_fuzz/corpus/1262b36ef669bf7367721e31a3834fbbcbd32b48 differ
diff --git a/test/de_fuzz/corpus/1264fb90558527d84da3b230073806bc4e911888 b/test/de_fuzz/corpus/1264fb90558527d84da3b230073806bc4e911888
new file mode 100644
index 00000000..4b429bb4
Binary files /dev/null and b/test/de_fuzz/corpus/1264fb90558527d84da3b230073806bc4e911888 differ
diff --git a/test/de_fuzz/corpus/126cfe3576104799eb786c77b00ff08a3cbffaeb b/test/de_fuzz/corpus/126cfe3576104799eb786c77b00ff08a3cbffaeb
new file mode 100644
index 00000000..4bdf9336
Binary files /dev/null and b/test/de_fuzz/corpus/126cfe3576104799eb786c77b00ff08a3cbffaeb differ
diff --git a/test/de_fuzz/corpus/129a1d2b6fd7d1d1bd57dd4e4d4276eb09677abc b/test/de_fuzz/corpus/129a1d2b6fd7d1d1bd57dd4e4d4276eb09677abc
new file mode 100644
index 00000000..a14ab90c
Binary files /dev/null and b/test/de_fuzz/corpus/129a1d2b6fd7d1d1bd57dd4e4d4276eb09677abc differ
diff --git a/test/de_fuzz/corpus/12c3554e58bc7b3a2cb9dc8338fedc31ce44e402 b/test/de_fuzz/corpus/12c3554e58bc7b3a2cb9dc8338fedc31ce44e402
new file mode 100644
index 00000000..93e57afb
Binary files /dev/null and b/test/de_fuzz/corpus/12c3554e58bc7b3a2cb9dc8338fedc31ce44e402 differ
diff --git a/test/de_fuzz/corpus/12fbad26bdd11897a8b391eb1a360d675ae3cbfb b/test/de_fuzz/corpus/12fbad26bdd11897a8b391eb1a360d675ae3cbfb
new file mode 100644
index 00000000..2d57f8e9
Binary files /dev/null and b/test/de_fuzz/corpus/12fbad26bdd11897a8b391eb1a360d675ae3cbfb differ
diff --git a/test/de_fuzz/corpus/132ff4b6cb9199d914592d58d251a75d89bf0d03 b/test/de_fuzz/corpus/132ff4b6cb9199d914592d58d251a75d89bf0d03
new file mode 100644
index 00000000..b27b96c8
Binary files /dev/null and b/test/de_fuzz/corpus/132ff4b6cb9199d914592d58d251a75d89bf0d03 differ
diff --git a/test/de_fuzz/corpus/1335ba021f5187209108c8661e3284a20cd543a6 b/test/de_fuzz/corpus/1335ba021f5187209108c8661e3284a20cd543a6
new file mode 100644
index 00000000..3033f696
Binary files /dev/null and b/test/de_fuzz/corpus/1335ba021f5187209108c8661e3284a20cd543a6 differ
diff --git a/test/de_fuzz/corpus/13394ca9428e5b14e0ab68e811a952ef0c323e2d b/test/de_fuzz/corpus/13394ca9428e5b14e0ab68e811a952ef0c323e2d
new file mode 100644
index 00000000..3b3702e0
Binary files /dev/null and b/test/de_fuzz/corpus/13394ca9428e5b14e0ab68e811a952ef0c323e2d differ
diff --git a/test/de_fuzz/corpus/136d6e1da2c71094f1991889346a36e035a10623 b/test/de_fuzz/corpus/136d6e1da2c71094f1991889346a36e035a10623
new file mode 100644
index 00000000..996bf4b6
Binary files /dev/null and b/test/de_fuzz/corpus/136d6e1da2c71094f1991889346a36e035a10623 differ
diff --git a/test/de_fuzz/corpus/137290689e4c916263477709a2edb684b21b3d87 b/test/de_fuzz/corpus/137290689e4c916263477709a2edb684b21b3d87
new file mode 100644
index 00000000..dccd9b71
Binary files /dev/null and b/test/de_fuzz/corpus/137290689e4c916263477709a2edb684b21b3d87 differ
diff --git a/test/de_fuzz/corpus/138cc2c93a02e87451726b61425219757b655e6a b/test/de_fuzz/corpus/138cc2c93a02e87451726b61425219757b655e6a
new file mode 100644
index 00000000..ecf7c397
Binary files /dev/null and b/test/de_fuzz/corpus/138cc2c93a02e87451726b61425219757b655e6a differ
diff --git a/test/de_fuzz/corpus/1390778ef569435a68745baa1f45a8aac99a6c3c b/test/de_fuzz/corpus/1390778ef569435a68745baa1f45a8aac99a6c3c
new file mode 100644
index 00000000..3af784b8
Binary files /dev/null and b/test/de_fuzz/corpus/1390778ef569435a68745baa1f45a8aac99a6c3c differ
diff --git a/test/de_fuzz/corpus/1493f238a032b214f31918409b2edb5b8e76eadd b/test/de_fuzz/corpus/1493f238a032b214f31918409b2edb5b8e76eadd
new file mode 100644
index 00000000..5d9186fb
Binary files /dev/null and b/test/de_fuzz/corpus/1493f238a032b214f31918409b2edb5b8e76eadd differ
diff --git a/test/de_fuzz/corpus/14ae96f332af538f4283a62e879cf80df3a26f50 b/test/de_fuzz/corpus/14ae96f332af538f4283a62e879cf80df3a26f50
new file mode 100644
index 00000000..5ea0de4c
Binary files /dev/null and b/test/de_fuzz/corpus/14ae96f332af538f4283a62e879cf80df3a26f50 differ
diff --git a/test/de_fuzz/corpus/14c77f16c9bb08f56898d9d289093111ceb55a90 b/test/de_fuzz/corpus/14c77f16c9bb08f56898d9d289093111ceb55a90
new file mode 100644
index 00000000..9b1a5144
--- /dev/null
+++ b/test/de_fuzz/corpus/14c77f16c9bb08f56898d9d289093111ceb55a90
@@ -0,0 +1 @@
+8^\l*(?:((.*(([[:u:]].)\W)*(?3)\W*\4|\{13} \x{13} WM*))\W*$T\W*(?3)\W*\4|\W)ox \x{13} \x{13}
\ No newline at end of file
diff --git a/test/de_fuzz/corpus/14fca38b8cb30055db9b94d970b818a181e25156 b/test/de_fuzz/corpus/14fca38b8cb30055db9b94d970b818a181e25156
new file mode 100644
index 00000000..f36530b6
--- /dev/null
+++ b/test/de_fuzz/corpus/14fca38b8cb30055db9b94d970b818a181e25156
@@ -0,0 +1 @@
+Z(((((((f+)+)+)+)+)+)+)+|Y(((((((a+)+)+)+)+)+)+)+|X(((((((a+)+)+)+)+)+)+)+|W(((((((a+)+)+)+)+)+)\R+)+|V(((((((a+)+)+)+)+)+)+)+|CZ(((((((a+)+)+)+)+)+)+)+|CY(((((((a+)+)+)+)+)+)+)+|CX(((((((a+)+)+)+)+)+)+)+|CW(((((((a+)+)+)+)+)+)+)+|CV(((((((a+)+)+)+)+)+)+)+|(a+)+bc
\ No newline at end of file
diff --git a/test/de_fuzz/corpus/1527f31ef8870707163d1e3d2d06c9ebab182ab8 b/test/de_fuzz/corpus/1527f31ef8870707163d1e3d2d06c9ebab182ab8
new file mode 100644
index 00000000..945894fc
Binary files /dev/null and b/test/de_fuzz/corpus/1527f31ef8870707163d1e3d2d06c9ebab182ab8 differ
diff --git a/test/de_fuzz/corpus/157e37bd7594a765a2a5d263fcd9dad56ffb0337 b/test/de_fuzz/corpus/157e37bd7594a765a2a5d263fcd9dad56ffb0337
new file mode 100644
index 00000000..17e327f3
Binary files /dev/null and b/test/de_fuzz/corpus/157e37bd7594a765a2a5d263fcd9dad56ffb0337 differ
diff --git a/test/de_fuzz/corpus/15885785e243fa8c61b3ed4f83fc0417cffab7b3 b/test/de_fuzz/corpus/15885785e243fa8c61b3ed4f83fc0417cffab7b3
new file mode 100644
index 00000000..b2641331
Binary files /dev/null and b/test/de_fuzz/corpus/15885785e243fa8c61b3ed4f83fc0417cffab7b3 differ
diff --git a/test/de_fuzz/corpus/15f1b0040d3ebfced12b85f0c64cd74e36a82fec b/test/de_fuzz/corpus/15f1b0040d3ebfced12b85f0c64cd74e36a82fec
new file mode 100644
index 00000000..fa1a604c
Binary files /dev/null and b/test/de_fuzz/corpus/15f1b0040d3ebfced12b85f0c64cd74e36a82fec differ
diff --git a/test/de_fuzz/corpus/15fc06fb9898f235131988e1fe65b12c038927bc b/test/de_fuzz/corpus/15fc06fb9898f235131988e1fe65b12c038927bc
new file mode 100644
index 00000000..fc9cabd6
Binary files /dev/null and b/test/de_fuzz/corpus/15fc06fb9898f235131988e1fe65b12c038927bc differ
diff --git a/test/de_fuzz/corpus/160fb49f5ab2e2e0baeeb822020893f488cf0921 b/test/de_fuzz/corpus/160fb49f5ab2e2e0baeeb822020893f488cf0921
new file mode 100644
index 00000000..639f2040
Binary files /dev/null and b/test/de_fuzz/corpus/160fb49f5ab2e2e0baeeb822020893f488cf0921 differ
diff --git a/test/de_fuzz/corpus/162b1460d458405ff33e35a070bda858629c819b b/test/de_fuzz/corpus/162b1460d458405ff33e35a070bda858629c819b
new file mode 100644
index 00000000..6d3221a3
Binary files /dev/null and b/test/de_fuzz/corpus/162b1460d458405ff33e35a070bda858629c819b differ
diff --git a/test/de_fuzz/corpus/167dfd7f9fc41c2fb4206ce45a01b22f72f308f6 b/test/de_fuzz/corpus/167dfd7f9fc41c2fb4206ce45a01b22f72f308f6
new file mode 100644
index 00000000..a2b0a25a
Binary files /dev/null and b/test/de_fuzz/corpus/167dfd7f9fc41c2fb4206ce45a01b22f72f308f6 differ
diff --git a/test/de_fuzz/corpus/167f7c90588224bf8aba8e27c673c0adcf92c41f b/test/de_fuzz/corpus/167f7c90588224bf8aba8e27c673c0adcf92c41f
new file mode 100644
index 00000000..e13a526e
Binary files /dev/null and b/test/de_fuzz/corpus/167f7c90588224bf8aba8e27c673c0adcf92c41f differ
diff --git a/test/de_fuzz/corpus/16907bc2e4fe79aef411b689ec3e8b799e8b5d44 b/test/de_fuzz/corpus/16907bc2e4fe79aef411b689ec3e8b799e8b5d44
new file mode 100644
index 00000000..82d2c759
Binary files /dev/null and b/test/de_fuzz/corpus/16907bc2e4fe79aef411b689ec3e8b799e8b5d44 differ
diff --git a/test/de_fuzz/corpus/16a40f4b369bd8c800cce8f7c25ff8094483d0c2 b/test/de_fuzz/corpus/16a40f4b369bd8c800cce8f7c25ff8094483d0c2
new file mode 100644
index 00000000..da1fe2c5
Binary files /dev/null and b/test/de_fuzz/corpus/16a40f4b369bd8c800cce8f7c25ff8094483d0c2 differ
diff --git a/test/de_fuzz/corpus/16b63c7a3e1acff638556a2e77aca152b72754cd b/test/de_fuzz/corpus/16b63c7a3e1acff638556a2e77aca152b72754cd
new file mode 100644
index 00000000..b848f5a9
Binary files /dev/null and b/test/de_fuzz/corpus/16b63c7a3e1acff638556a2e77aca152b72754cd differ
diff --git a/test/de_fuzz/corpus/16bbd23dab7201d8055cdf19c7d14c6e562dc21d b/test/de_fuzz/corpus/16bbd23dab7201d8055cdf19c7d14c6e562dc21d
new file mode 100644
index 00000000..e83bd74f
Binary files /dev/null and b/test/de_fuzz/corpus/16bbd23dab7201d8055cdf19c7d14c6e562dc21d differ
diff --git a/test/de_fuzz/corpus/16e2514aead32f363af1ea97fe90484a0c48e4c9 b/test/de_fuzz/corpus/16e2514aead32f363af1ea97fe90484a0c48e4c9
new file mode 100644
index 00000000..385c5832
--- /dev/null
+++ b/test/de_fuzz/corpus/16e2514aead32f363af1ea97fe90484a0c48e4c9
@@ -0,0 +1,193 @@
+'è (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* # optional leading comment
+(?: (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+) # initial word
+(?: (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+) )* # further okay, if led by a period
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* @ (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # initial subdomain
+(?: #
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. # if led by a period...
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x@0-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # ...further okay
+)*
+# address
+| # or
+(?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+) # one word, optionally followed by....
+(?:
+[^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037] | # atom and space parts, or...
+\(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) | # comments, or...
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+# quoted strings
+)*
+< (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* # leading <
+(?: @ (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # initial subdomain
+(?: #
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. # if led by a period...
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # ...further okay
+)*
+(?: (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* , (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* @ (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # initial subdomain
+(?: #
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. # if led by a period...
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # ...further okay
+)*
+)* # further okay, if led by comma
+: # closing colon
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* )? # optional route
+(?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+) # initial word
+(?: (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+) )* # further okay, if led by a period
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* @ (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # initial subdomain
+(?: #
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. # if led by a period...
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # ...further okay
+)*
+# address spec
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* > # trailing >
+# name and address
+) (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* # optional trailing comment
+
+
\ No newline at end of file
diff --git a/test/de_fuzz/corpus/17336f67e3e840f4d4c09416fb98d15ea890b064 b/test/de_fuzz/corpus/17336f67e3e840f4d4c09416fb98d15ea890b064
new file mode 100644
index 00000000..99998774
Binary files /dev/null and b/test/de_fuzz/corpus/17336f67e3e840f4d4c09416fb98d15ea890b064 differ
diff --git a/test/de_fuzz/corpus/17e4441cc094daf63490617baa281706f5114234 b/test/de_fuzz/corpus/17e4441cc094daf63490617baa281706f5114234
new file mode 100644
index 00000000..fe087c7c
Binary files /dev/null and b/test/de_fuzz/corpus/17e4441cc094daf63490617baa281706f5114234 differ
diff --git a/test/de_fuzz/corpus/17f76230795e24f1decbf65fedee8323d23aea12 b/test/de_fuzz/corpus/17f76230795e24f1decbf65fedee8323d23aea12
new file mode 100644
index 00000000..bc24983f
Binary files /dev/null and b/test/de_fuzz/corpus/17f76230795e24f1decbf65fedee8323d23aea12 differ
diff --git a/test/de_fuzz/corpus/180208061d90bed3fe9c42e8fbc6d4c614e8ae2a b/test/de_fuzz/corpus/180208061d90bed3fe9c42e8fbc6d4c614e8ae2a
new file mode 100644
index 00000000..8fa26056
Binary files /dev/null and b/test/de_fuzz/corpus/180208061d90bed3fe9c42e8fbc6d4c614e8ae2a differ
diff --git a/test/de_fuzz/corpus/1823a0fa9a22d102d466566a5fd8211f736247c2 b/test/de_fuzz/corpus/1823a0fa9a22d102d466566a5fd8211f736247c2
new file mode 100644
index 00000000..3dae569d
Binary files /dev/null and b/test/de_fuzz/corpus/1823a0fa9a22d102d466566a5fd8211f736247c2 differ
diff --git a/test/de_fuzz/corpus/1833611169bba70573bf1fd7a904fd8eb542b181 b/test/de_fuzz/corpus/1833611169bba70573bf1fd7a904fd8eb542b181
new file mode 100644
index 00000000..a125cc30
Binary files /dev/null and b/test/de_fuzz/corpus/1833611169bba70573bf1fd7a904fd8eb542b181 differ
diff --git a/test/de_fuzz/corpus/18526839d75f8395be3225532d31bff3b9eccd82 b/test/de_fuzz/corpus/18526839d75f8395be3225532d31bff3b9eccd82
new file mode 100644
index 00000000..fed651e0
Binary files /dev/null and b/test/de_fuzz/corpus/18526839d75f8395be3225532d31bff3b9eccd82 differ
diff --git a/test/de_fuzz/corpus/186151c96ca10ae271354619e7b3451be0faffd9 b/test/de_fuzz/corpus/186151c96ca10ae271354619e7b3451be0faffd9
new file mode 100644
index 00000000..32fd405e
Binary files /dev/null and b/test/de_fuzz/corpus/186151c96ca10ae271354619e7b3451be0faffd9 differ
diff --git a/test/de_fuzz/corpus/186927ae989d7ec99c700510788f1b4d6be37513 b/test/de_fuzz/corpus/186927ae989d7ec99c700510788f1b4d6be37513
new file mode 100644
index 00000000..fd49ea77
Binary files /dev/null and b/test/de_fuzz/corpus/186927ae989d7ec99c700510788f1b4d6be37513 differ
diff --git a/test/de_fuzz/corpus/18a35decbb139c8d5df84a6e5e52cc41b0d420ee b/test/de_fuzz/corpus/18a35decbb139c8d5df84a6e5e52cc41b0d420ee
new file mode 100644
index 00000000..3330cc62
Binary files /dev/null and b/test/de_fuzz/corpus/18a35decbb139c8d5df84a6e5e52cc41b0d420ee differ
diff --git a/test/de_fuzz/corpus/18a425492da8b3df84d150c9396263c1d9d856cd b/test/de_fuzz/corpus/18a425492da8b3df84d150c9396263c1d9d856cd
new file mode 100644
index 00000000..964f4e4f
Binary files /dev/null and b/test/de_fuzz/corpus/18a425492da8b3df84d150c9396263c1d9d856cd differ
diff --git a/test/de_fuzz/corpus/18af0d3c4ea1098b1e915b4d9b23b9db5f195e61 b/test/de_fuzz/corpus/18af0d3c4ea1098b1e915b4d9b23b9db5f195e61
new file mode 100644
index 00000000..97364ca4
Binary files /dev/null and b/test/de_fuzz/corpus/18af0d3c4ea1098b1e915b4d9b23b9db5f195e61 differ
diff --git a/test/de_fuzz/corpus/18c304c3dc071da7d7e1100c03086d2cfb5d7643 b/test/de_fuzz/corpus/18c304c3dc071da7d7e1100c03086d2cfb5d7643
new file mode 100644
index 00000000..c680b3f3
Binary files /dev/null and b/test/de_fuzz/corpus/18c304c3dc071da7d7e1100c03086d2cfb5d7643 differ
diff --git a/test/de_fuzz/corpus/18d40df7a2368f9637726c3c001c7551fdcb61ef b/test/de_fuzz/corpus/18d40df7a2368f9637726c3c001c7551fdcb61ef
new file mode 100644
index 00000000..104c8d02
Binary files /dev/null and b/test/de_fuzz/corpus/18d40df7a2368f9637726c3c001c7551fdcb61ef differ
diff --git a/test/de_fuzz/corpus/18e361ed0a62de425ed0a120ab4decd4c7712e7d b/test/de_fuzz/corpus/18e361ed0a62de425ed0a120ab4decd4c7712e7d
new file mode 100644
index 00000000..a319b3b5
Binary files /dev/null and b/test/de_fuzz/corpus/18e361ed0a62de425ed0a120ab4decd4c7712e7d differ
diff --git a/test/de_fuzz/corpus/18e3b2c9fde067e344641eb817b82b25d8844b2e b/test/de_fuzz/corpus/18e3b2c9fde067e344641eb817b82b25d8844b2e
new file mode 100644
index 00000000..f2a812fe
Binary files /dev/null and b/test/de_fuzz/corpus/18e3b2c9fde067e344641eb817b82b25d8844b2e differ
diff --git a/test/de_fuzz/corpus/1980561b6aeca62707b13b930cda80288f51fa3d b/test/de_fuzz/corpus/1980561b6aeca62707b13b930cda80288f51fa3d
new file mode 100644
index 00000000..47715349
Binary files /dev/null and b/test/de_fuzz/corpus/1980561b6aeca62707b13b930cda80288f51fa3d differ
diff --git a/test/de_fuzz/corpus/19db43c33440e5871e27a17df5df6d95869c9445 b/test/de_fuzz/corpus/19db43c33440e5871e27a17df5df6d95869c9445
new file mode 100644
index 00000000..d5013ab5
Binary files /dev/null and b/test/de_fuzz/corpus/19db43c33440e5871e27a17df5df6d95869c9445 differ
diff --git a/test/de_fuzz/corpus/1a25e7b0385d82a59b6d15de95ac7414a5a921a4 b/test/de_fuzz/corpus/1a25e7b0385d82a59b6d15de95ac7414a5a921a4
new file mode 100644
index 00000000..1c181de2
Binary files /dev/null and b/test/de_fuzz/corpus/1a25e7b0385d82a59b6d15de95ac7414a5a921a4 differ
diff --git a/test/de_fuzz/corpus/1a363029ffe5ec7e3fed53441ec287443e9def20 b/test/de_fuzz/corpus/1a363029ffe5ec7e3fed53441ec287443e9def20
new file mode 100644
index 00000000..1e2114f7
Binary files /dev/null and b/test/de_fuzz/corpus/1a363029ffe5ec7e3fed53441ec287443e9def20 differ
diff --git a/test/de_fuzz/corpus/1a4cce4cedbd98009ded7396f154af06f50451c5 b/test/de_fuzz/corpus/1a4cce4cedbd98009ded7396f154af06f50451c5
new file mode 100644
index 00000000..12cbd3e4
Binary files /dev/null and b/test/de_fuzz/corpus/1a4cce4cedbd98009ded7396f154af06f50451c5 differ
diff --git a/test/de_fuzz/corpus/1a8293dcb9cc33d2a4cef6ec8bc9ad5d25a568a9 b/test/de_fuzz/corpus/1a8293dcb9cc33d2a4cef6ec8bc9ad5d25a568a9
new file mode 100644
index 00000000..1b02d82e
Binary files /dev/null and b/test/de_fuzz/corpus/1a8293dcb9cc33d2a4cef6ec8bc9ad5d25a568a9 differ
diff --git a/test/de_fuzz/corpus/1ae6ad228ef4ea487e618b28be20b99a9c6dc8ab b/test/de_fuzz/corpus/1ae6ad228ef4ea487e618b28be20b99a9c6dc8ab
new file mode 100644
index 00000000..fb4a84df
Binary files /dev/null and b/test/de_fuzz/corpus/1ae6ad228ef4ea487e618b28be20b99a9c6dc8ab differ
diff --git a/test/de_fuzz/corpus/1b1b08335c5d537c0d53bedb7fb851d37689e68a b/test/de_fuzz/corpus/1b1b08335c5d537c0d53bedb7fb851d37689e68a
new file mode 100644
index 00000000..9945b438
Binary files /dev/null and b/test/de_fuzz/corpus/1b1b08335c5d537c0d53bedb7fb851d37689e68a differ
diff --git a/test/de_fuzz/corpus/1b6a9e734c7daa647faf2e99f99a510961aa907f b/test/de_fuzz/corpus/1b6a9e734c7daa647faf2e99f99a510961aa907f
new file mode 100644
index 00000000..0fb84006
Binary files /dev/null and b/test/de_fuzz/corpus/1b6a9e734c7daa647faf2e99f99a510961aa907f differ
diff --git a/test/de_fuzz/corpus/1b76d2df6b48712832ea08f99e1e2abe32148d80 b/test/de_fuzz/corpus/1b76d2df6b48712832ea08f99e1e2abe32148d80
new file mode 100644
index 00000000..e5b29462
Binary files /dev/null and b/test/de_fuzz/corpus/1b76d2df6b48712832ea08f99e1e2abe32148d80 differ
diff --git a/test/de_fuzz/corpus/1b779e9affb755c30a5ea22c6cbcddb8beb0d249 b/test/de_fuzz/corpus/1b779e9affb755c30a5ea22c6cbcddb8beb0d249
new file mode 100644
index 00000000..94c38686
Binary files /dev/null and b/test/de_fuzz/corpus/1b779e9affb755c30a5ea22c6cbcddb8beb0d249 differ
diff --git a/test/de_fuzz/corpus/1b885f55c1f8e15cba3ae3e1b77d0ac7bea76007 b/test/de_fuzz/corpus/1b885f55c1f8e15cba3ae3e1b77d0ac7bea76007
new file mode 100644
index 00000000..26553184
Binary files /dev/null and b/test/de_fuzz/corpus/1b885f55c1f8e15cba3ae3e1b77d0ac7bea76007 differ
diff --git a/test/de_fuzz/corpus/1c2bfc5c5b7c5139085d785dc4f9bc7edae53345 b/test/de_fuzz/corpus/1c2bfc5c5b7c5139085d785dc4f9bc7edae53345
new file mode 100644
index 00000000..a031c5e0
Binary files /dev/null and b/test/de_fuzz/corpus/1c2bfc5c5b7c5139085d785dc4f9bc7edae53345 differ
diff --git a/test/de_fuzz/corpus/1c518b37cd66c10a5343939b8e611459ba2e626d b/test/de_fuzz/corpus/1c518b37cd66c10a5343939b8e611459ba2e626d
new file mode 100644
index 00000000..a8c61b1a
--- /dev/null
+++ b/test/de_fuzz/corpus/1c518b37cd66c10a5343939b8e611459ba2e626d
@@ -0,0 +1 @@
+Z(((((((a+)+)+)+)+)+)+)+|Y(((((((a+)+)+)+)+)+)+)+|X(((((((a+)+)+)+)+)+)+)+|W[[:Lowercase Letter:]]+|V(((((((a+)+)+)+)+)+)+)+|CZ(((((((a+)+)+)+)+)+)+)+|CY(((((((a+)+)+)+)+)+)+)+|CX(((((((a+)+)+)+)+)+)+)+|CW(((((((a+)+)+)+)+)+)+)+|CV(((((((a+)+)+)+)+)+)+)+|(a+)+bc
\ No newline at end of file
diff --git a/test/de_fuzz/corpus/1c7d35a9d0771c7800f36b5287d70346e757c123 b/test/de_fuzz/corpus/1c7d35a9d0771c7800f36b5287d70346e757c123
new file mode 100644
index 00000000..2bfe4dd5
Binary files /dev/null and b/test/de_fuzz/corpus/1c7d35a9d0771c7800f36b5287d70346e757c123 differ
diff --git a/test/de_fuzz/corpus/1c83422919930e3987f05e240575d6ea8499fdda b/test/de_fuzz/corpus/1c83422919930e3987f05e240575d6ea8499fdda
new file mode 100644
index 00000000..063b9056
Binary files /dev/null and b/test/de_fuzz/corpus/1c83422919930e3987f05e240575d6ea8499fdda differ
diff --git a/test/de_fuzz/corpus/1cb149e6a67f8dc7ebb74261feb916818ff7ea3f b/test/de_fuzz/corpus/1cb149e6a67f8dc7ebb74261feb916818ff7ea3f
new file mode 100644
index 00000000..3303b54c
Binary files /dev/null and b/test/de_fuzz/corpus/1cb149e6a67f8dc7ebb74261feb916818ff7ea3f differ
diff --git a/test/de_fuzz/corpus/1cd3f923596b5fe430cfb793b059e1a87c07f923 b/test/de_fuzz/corpus/1cd3f923596b5fe430cfb793b059e1a87c07f923
new file mode 100644
index 00000000..3d783a3b
--- /dev/null
+++ b/test/de_fuzz/corpus/1cd3f923596b5fe430cfb793b059e1a87c07f923
@@ -0,0 +1,10 @@
+'è (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* # optional leading comment
+(?: (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x8ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ0-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+"^\x80-\xff] | \( (?: [^\\\(80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* # optional l[ading comment # o r
+\:\ [^\x80-\xff]
\ No newline at end of file
diff --git a/test/de_fuzz/corpus/1d38636a182fcd0825aaa254bcc622aa2bca55aa b/test/de_fuzz/corpus/1d38636a182fcd0825aaa254bcc622aa2bca55aa
new file mode 100644
index 00000000..edb32f02
Binary files /dev/null and b/test/de_fuzz/corpus/1d38636a182fcd0825aaa254bcc622aa2bca55aa differ
diff --git a/test/de_fuzz/corpus/1d3c58a7c4dfb3fa861fb3b7d656941107b0789b b/test/de_fuzz/corpus/1d3c58a7c4dfb3fa861fb3b7d656941107b0789b
new file mode 100644
index 00000000..0907cc96
Binary files /dev/null and b/test/de_fuzz/corpus/1d3c58a7c4dfb3fa861fb3b7d656941107b0789b differ
diff --git a/test/de_fuzz/corpus/1d6217e45fc12058c91395960fd0caeee46e968b b/test/de_fuzz/corpus/1d6217e45fc12058c91395960fd0caeee46e968b
new file mode 100644
index 00000000..57b5a954
Binary files /dev/null and b/test/de_fuzz/corpus/1d6217e45fc12058c91395960fd0caeee46e968b differ
diff --git a/test/de_fuzz/corpus/1db6bcd1f983f9078249db65f333fc8cda119e5e b/test/de_fuzz/corpus/1db6bcd1f983f9078249db65f333fc8cda119e5e
new file mode 100644
index 00000000..8e82d0d2
Binary files /dev/null and b/test/de_fuzz/corpus/1db6bcd1f983f9078249db65f333fc8cda119e5e differ
diff --git a/test/de_fuzz/corpus/1db9a6c38291eb1d7e39783ddb5f21b45b4d58ba b/test/de_fuzz/corpus/1db9a6c38291eb1d7e39783ddb5f21b45b4d58ba
new file mode 100644
index 00000000..7cc66966
Binary files /dev/null and b/test/de_fuzz/corpus/1db9a6c38291eb1d7e39783ddb5f21b45b4d58ba differ
diff --git a/test/de_fuzz/corpus/1ddb7d39dd8356038cc31ecb546d29b85727dbd5 b/test/de_fuzz/corpus/1ddb7d39dd8356038cc31ecb546d29b85727dbd5
new file mode 100644
index 00000000..e64595a4
Binary files /dev/null and b/test/de_fuzz/corpus/1ddb7d39dd8356038cc31ecb546d29b85727dbd5 differ
diff --git a/test/de_fuzz/corpus/1e18a803263a230133d9a0e34766d17774bf72f5 b/test/de_fuzz/corpus/1e18a803263a230133d9a0e34766d17774bf72f5
new file mode 100644
index 00000000..f47fbcf6
Binary files /dev/null and b/test/de_fuzz/corpus/1e18a803263a230133d9a0e34766d17774bf72f5 differ
diff --git a/test/de_fuzz/corpus/1e2a16c99c99c693896272f8b51202793c7aea3e b/test/de_fuzz/corpus/1e2a16c99c99c693896272f8b51202793c7aea3e
new file mode 100644
index 00000000..da1c2c2f
Binary files /dev/null and b/test/de_fuzz/corpus/1e2a16c99c99c693896272f8b51202793c7aea3e differ
diff --git a/test/de_fuzz/corpus/1e3054ed822d13b4f25fd2167eab412bef2cedc4 b/test/de_fuzz/corpus/1e3054ed822d13b4f25fd2167eab412bef2cedc4
new file mode 100644
index 00000000..9b1a4af9
Binary files /dev/null and b/test/de_fuzz/corpus/1e3054ed822d13b4f25fd2167eab412bef2cedc4 differ
diff --git a/test/de_fuzz/corpus/1e4c37fb5b67bb9ed1234becace5a7dd3407d7e1 b/test/de_fuzz/corpus/1e4c37fb5b67bb9ed1234becace5a7dd3407d7e1
new file mode 100644
index 00000000..5e82fab9
Binary files /dev/null and b/test/de_fuzz/corpus/1e4c37fb5b67bb9ed1234becace5a7dd3407d7e1 differ
diff --git a/test/de_fuzz/corpus/1e50590e37b13876facbcd4aebebfbca37371f35 b/test/de_fuzz/corpus/1e50590e37b13876facbcd4aebebfbca37371f35
new file mode 100644
index 00000000..690ca25b
Binary files /dev/null and b/test/de_fuzz/corpus/1e50590e37b13876facbcd4aebebfbca37371f35 differ
diff --git a/test/de_fuzz/corpus/1e51fb73926820b86aa7377c0b261407cb79e1d7 b/test/de_fuzz/corpus/1e51fb73926820b86aa7377c0b261407cb79e1d7
new file mode 100644
index 00000000..d0318616
Binary files /dev/null and b/test/de_fuzz/corpus/1e51fb73926820b86aa7377c0b261407cb79e1d7 differ
diff --git a/test/de_fuzz/corpus/1e5d6d72b0e39853e6d86bfb8fc517d77a3ce285 b/test/de_fuzz/corpus/1e5d6d72b0e39853e6d86bfb8fc517d77a3ce285
new file mode 100644
index 00000000..4af72e00
Binary files /dev/null and b/test/de_fuzz/corpus/1e5d6d72b0e39853e6d86bfb8fc517d77a3ce285 differ
diff --git a/test/de_fuzz/corpus/1e6595d6e4e3a47cf2413918aea4b31383abbf28 b/test/de_fuzz/corpus/1e6595d6e4e3a47cf2413918aea4b31383abbf28
new file mode 100644
index 00000000..dd66edef
Binary files /dev/null and b/test/de_fuzz/corpus/1e6595d6e4e3a47cf2413918aea4b31383abbf28 differ
diff --git a/test/de_fuzz/corpus/1e6a8558a549acec2140152290d24fbbdae1e2de b/test/de_fuzz/corpus/1e6a8558a549acec2140152290d24fbbdae1e2de
new file mode 100644
index 00000000..ca4a47b9
Binary files /dev/null and b/test/de_fuzz/corpus/1e6a8558a549acec2140152290d24fbbdae1e2de differ
diff --git a/test/de_fuzz/corpus/1e97e258bb59f46ba5c0f34b0448ac44ae6bc394 b/test/de_fuzz/corpus/1e97e258bb59f46ba5c0f34b0448ac44ae6bc394
new file mode 100644
index 00000000..8ed46188
Binary files /dev/null and b/test/de_fuzz/corpus/1e97e258bb59f46ba5c0f34b0448ac44ae6bc394 differ
diff --git a/test/de_fuzz/corpus/1ea8dff15dbe92a86a116c761ff66815020c8f02 b/test/de_fuzz/corpus/1ea8dff15dbe92a86a116c761ff66815020c8f02
new file mode 100644
index 00000000..d5a78eba
Binary files /dev/null and b/test/de_fuzz/corpus/1ea8dff15dbe92a86a116c761ff66815020c8f02 differ
diff --git a/test/de_fuzz/corpus/1ed27c1c2ae3fa81cef851a7044e7bdbc0a82c2e b/test/de_fuzz/corpus/1ed27c1c2ae3fa81cef851a7044e7bdbc0a82c2e
new file mode 100644
index 00000000..2c6e6b5f
Binary files /dev/null and b/test/de_fuzz/corpus/1ed27c1c2ae3fa81cef851a7044e7bdbc0a82c2e differ
diff --git a/test/de_fuzz/corpus/1ee1c812afda02e97c4ba44aab59f7e05e59eac9 b/test/de_fuzz/corpus/1ee1c812afda02e97c4ba44aab59f7e05e59eac9
new file mode 100644
index 00000000..05c18e59
Binary files /dev/null and b/test/de_fuzz/corpus/1ee1c812afda02e97c4ba44aab59f7e05e59eac9 differ
diff --git a/test/de_fuzz/corpus/1ee5b22c96521afcc46f0870dbda73b95a24f64d b/test/de_fuzz/corpus/1ee5b22c96521afcc46f0870dbda73b95a24f64d
new file mode 100644
index 00000000..bb2d45ac
Binary files /dev/null and b/test/de_fuzz/corpus/1ee5b22c96521afcc46f0870dbda73b95a24f64d differ
diff --git a/test/de_fuzz/corpus/1f4345759cb98770e88dc483b6bff95511f02a66 b/test/de_fuzz/corpus/1f4345759cb98770e88dc483b6bff95511f02a66
new file mode 100644
index 00000000..b2c910e8
Binary files /dev/null and b/test/de_fuzz/corpus/1f4345759cb98770e88dc483b6bff95511f02a66 differ
diff --git a/test/de_fuzz/corpus/1f453b3cb22c5b5d324efed4c161773fa40bd2bc b/test/de_fuzz/corpus/1f453b3cb22c5b5d324efed4c161773fa40bd2bc
new file mode 100644
index 00000000..9e025d4d
Binary files /dev/null and b/test/de_fuzz/corpus/1f453b3cb22c5b5d324efed4c161773fa40bd2bc differ
diff --git a/test/de_fuzz/corpus/1f4bf452d8e9aa392d3349810d0f0eff2198066c b/test/de_fuzz/corpus/1f4bf452d8e9aa392d3349810d0f0eff2198066c
new file mode 100644
index 00000000..3407f18c
Binary files /dev/null and b/test/de_fuzz/corpus/1f4bf452d8e9aa392d3349810d0f0eff2198066c differ
diff --git a/test/de_fuzz/corpus/1f56ede89c798be17127eb44f5590e85b7027336 b/test/de_fuzz/corpus/1f56ede89c798be17127eb44f5590e85b7027336
new file mode 100644
index 00000000..73509f7b
Binary files /dev/null and b/test/de_fuzz/corpus/1f56ede89c798be17127eb44f5590e85b7027336 differ
diff --git a/test/de_fuzz/corpus/1f5efc6c79091901e94413b6a001da665dba7703 b/test/de_fuzz/corpus/1f5efc6c79091901e94413b6a001da665dba7703
new file mode 100644
index 00000000..a392a934
Binary files /dev/null and b/test/de_fuzz/corpus/1f5efc6c79091901e94413b6a001da665dba7703 differ
diff --git a/test/de_fuzz/corpus/1f84d84c6e4c93bd1016367cda84e634263706a8 b/test/de_fuzz/corpus/1f84d84c6e4c93bd1016367cda84e634263706a8
new file mode 100644
index 00000000..dfed60c9
Binary files /dev/null and b/test/de_fuzz/corpus/1f84d84c6e4c93bd1016367cda84e634263706a8 differ
diff --git a/test/de_fuzz/corpus/1ffa26f95672f870f358ceeaf8a64b9b529d8b76 b/test/de_fuzz/corpus/1ffa26f95672f870f358ceeaf8a64b9b529d8b76
new file mode 100644
index 00000000..91bdbad9
Binary files /dev/null and b/test/de_fuzz/corpus/1ffa26f95672f870f358ceeaf8a64b9b529d8b76 differ
diff --git a/test/de_fuzz/corpus/20051301a707c606f09fca0dcd5205d0da730b17 b/test/de_fuzz/corpus/20051301a707c606f09fca0dcd5205d0da730b17
new file mode 100644
index 00000000..9ea9986d
Binary files /dev/null and b/test/de_fuzz/corpus/20051301a707c606f09fca0dcd5205d0da730b17 differ
diff --git a/test/de_fuzz/corpus/202dcb27a665d7a305706b9d79fcdb78230d07ab b/test/de_fuzz/corpus/202dcb27a665d7a305706b9d79fcdb78230d07ab
new file mode 100644
index 00000000..8d97a5e1
Binary files /dev/null and b/test/de_fuzz/corpus/202dcb27a665d7a305706b9d79fcdb78230d07ab differ
diff --git a/test/de_fuzz/corpus/203456264e62a01e3daa5a739f7795559f97e7b8 b/test/de_fuzz/corpus/203456264e62a01e3daa5a739f7795559f97e7b8
new file mode 100644
index 00000000..72617586
Binary files /dev/null and b/test/de_fuzz/corpus/203456264e62a01e3daa5a739f7795559f97e7b8 differ
diff --git a/test/de_fuzz/corpus/20398400ff7b37b3819b8cb7300ffe4bcb400173 b/test/de_fuzz/corpus/20398400ff7b37b3819b8cb7300ffe4bcb400173
new file mode 100644
index 00000000..7812b210
Binary files /dev/null and b/test/de_fuzz/corpus/20398400ff7b37b3819b8cb7300ffe4bcb400173 differ
diff --git a/test/de_fuzz/corpus/204ea84155b9c058f7fdbb2c1a643d761fe5c756 b/test/de_fuzz/corpus/204ea84155b9c058f7fdbb2c1a643d761fe5c756
new file mode 100644
index 00000000..54893c80
Binary files /dev/null and b/test/de_fuzz/corpus/204ea84155b9c058f7fdbb2c1a643d761fe5c756 differ
diff --git a/test/de_fuzz/corpus/20557acdf99135641d99b4a06f90d9007d5e758a b/test/de_fuzz/corpus/20557acdf99135641d99b4a06f90d9007d5e758a
new file mode 100644
index 00000000..ee5efbfa
Binary files /dev/null and b/test/de_fuzz/corpus/20557acdf99135641d99b4a06f90d9007d5e758a differ
diff --git a/test/de_fuzz/corpus/206ae55e1be7a2b5098d66a09ba96c40f785916f b/test/de_fuzz/corpus/206ae55e1be7a2b5098d66a09ba96c40f785916f
new file mode 100644
index 00000000..9e10d1e1
Binary files /dev/null and b/test/de_fuzz/corpus/206ae55e1be7a2b5098d66a09ba96c40f785916f differ
diff --git a/test/de_fuzz/corpus/2074275543d9c2b9edd3cc38f3763be4bb50c01c b/test/de_fuzz/corpus/2074275543d9c2b9edd3cc38f3763be4bb50c01c
new file mode 100644
index 00000000..64f5e8f5
Binary files /dev/null and b/test/de_fuzz/corpus/2074275543d9c2b9edd3cc38f3763be4bb50c01c differ
diff --git a/test/de_fuzz/corpus/2075725bf84ba7959f45c0afadd621ae6401659a b/test/de_fuzz/corpus/2075725bf84ba7959f45c0afadd621ae6401659a
new file mode 100644
index 00000000..e0d4ad44
Binary files /dev/null and b/test/de_fuzz/corpus/2075725bf84ba7959f45c0afadd621ae6401659a differ
diff --git a/test/de_fuzz/corpus/20767bb77dd618c650f2a05024c9a296e51a2f6e b/test/de_fuzz/corpus/20767bb77dd618c650f2a05024c9a296e51a2f6e
new file mode 100644
index 00000000..1b0698df
Binary files /dev/null and b/test/de_fuzz/corpus/20767bb77dd618c650f2a05024c9a296e51a2f6e differ
diff --git a/test/de_fuzz/corpus/207e0a253d636f498b2cc7987e6064a09cd62793 b/test/de_fuzz/corpus/207e0a253d636f498b2cc7987e6064a09cd62793
new file mode 100644
index 00000000..c36de2d0
Binary files /dev/null and b/test/de_fuzz/corpus/207e0a253d636f498b2cc7987e6064a09cd62793 differ
diff --git a/test/de_fuzz/corpus/208433eb70d62d06f0fe351ce0b659d47e99549b b/test/de_fuzz/corpus/208433eb70d62d06f0fe351ce0b659d47e99549b
new file mode 100644
index 00000000..dc7fdf98
Binary files /dev/null and b/test/de_fuzz/corpus/208433eb70d62d06f0fe351ce0b659d47e99549b differ
diff --git a/test/de_fuzz/corpus/2086e3b3162d68f489ee671f27367e4aa0c6db51 b/test/de_fuzz/corpus/2086e3b3162d68f489ee671f27367e4aa0c6db51
new file mode 100644
index 00000000..167a1b21
Binary files /dev/null and b/test/de_fuzz/corpus/2086e3b3162d68f489ee671f27367e4aa0c6db51 differ
diff --git a/test/de_fuzz/corpus/20a09b69f13bc82d2124d41478aba3cd9fcb5934 b/test/de_fuzz/corpus/20a09b69f13bc82d2124d41478aba3cd9fcb5934
new file mode 100644
index 00000000..a1315601
Binary files /dev/null and b/test/de_fuzz/corpus/20a09b69f13bc82d2124d41478aba3cd9fcb5934 differ
diff --git a/test/de_fuzz/corpus/213024272ec47d338cce7e85f88fdc452586eb74 b/test/de_fuzz/corpus/213024272ec47d338cce7e85f88fdc452586eb74
new file mode 100644
index 00000000..22337d83
Binary files /dev/null and b/test/de_fuzz/corpus/213024272ec47d338cce7e85f88fdc452586eb74 differ
diff --git a/test/de_fuzz/corpus/214d7acbf05656d00fcbe2db0d34808987516ed1 b/test/de_fuzz/corpus/214d7acbf05656d00fcbe2db0d34808987516ed1
new file mode 100644
index 00000000..7d33cd76
Binary files /dev/null and b/test/de_fuzz/corpus/214d7acbf05656d00fcbe2db0d34808987516ed1 differ
diff --git a/test/de_fuzz/corpus/215b7fb97020bccb28990ece2b15ab2b1725ac57 b/test/de_fuzz/corpus/215b7fb97020bccb28990ece2b15ab2b1725ac57
new file mode 100644
index 00000000..76036cf3
--- /dev/null
+++ b/test/de_fuzz/corpus/215b7fb97020bccb28990ece2b15ab2b1725ac57
@@ -0,0 +1 @@
+Z(((((((a+)+)+)+)+)+)+)+|Y(((((((a+)+)+)+)+)+)+)+|X(((((((a+)+)+)+)+)+)+)+|W(((((((a+)+)+i+)+)+)+)+|V(((((((a+)+)+!\Pd((a+)+)+)+)+)+)+)+|(a+)+bc
\ No newline at end of file
diff --git a/test/de_fuzz/corpus/21be33985b124e065ceaf38ffe7e474724041a00 b/test/de_fuzz/corpus/21be33985b124e065ceaf38ffe7e474724041a00
new file mode 100644
index 00000000..02cfaac8
Binary files /dev/null and b/test/de_fuzz/corpus/21be33985b124e065ceaf38ffe7e474724041a00 differ
diff --git a/test/de_fuzz/corpus/21c97a27e0db5697d1be68b39e2244b36133b557 b/test/de_fuzz/corpus/21c97a27e0db5697d1be68b39e2244b36133b557
new file mode 100644
index 00000000..d7c17bfd
Binary files /dev/null and b/test/de_fuzz/corpus/21c97a27e0db5697d1be68b39e2244b36133b557 differ
diff --git a/test/de_fuzz/corpus/21eae1ff34ec220e6a9fda524b6d9cd5c802a9a1 b/test/de_fuzz/corpus/21eae1ff34ec220e6a9fda524b6d9cd5c802a9a1
new file mode 100644
index 00000000..c8b261ad
Binary files /dev/null and b/test/de_fuzz/corpus/21eae1ff34ec220e6a9fda524b6d9cd5c802a9a1 differ
diff --git a/test/de_fuzz/corpus/22439493568e52b5d35627cd93342fd317d53e22 b/test/de_fuzz/corpus/22439493568e52b5d35627cd93342fd317d53e22
new file mode 100644
index 00000000..f3610590
Binary files /dev/null and b/test/de_fuzz/corpus/22439493568e52b5d35627cd93342fd317d53e22 differ
diff --git a/test/de_fuzz/corpus/22439b2bc2b69a226d804646ace948c1749e666d b/test/de_fuzz/corpus/22439b2bc2b69a226d804646ace948c1749e666d
new file mode 100644
index 00000000..95310229
Binary files /dev/null and b/test/de_fuzz/corpus/22439b2bc2b69a226d804646ace948c1749e666d differ
diff --git a/test/de_fuzz/corpus/224809a92db970094c28145dc6b64b23208c7eb2 b/test/de_fuzz/corpus/224809a92db970094c28145dc6b64b23208c7eb2
new file mode 100644
index 00000000..1cd11c39
Binary files /dev/null and b/test/de_fuzz/corpus/224809a92db970094c28145dc6b64b23208c7eb2 differ
diff --git a/test/de_fuzz/corpus/2252da790304b7319832b88cbb92a8fcbb306531 b/test/de_fuzz/corpus/2252da790304b7319832b88cbb92a8fcbb306531
new file mode 100644
index 00000000..89dbf0a9
--- /dev/null
+++ b/test/de_fuzz/corpus/2252da790304b7319832b88cbb92a8fcbb306531
@@ -0,0 +1,2 @@
+8^\l*(?:((.*?)\W*(?1)\W*{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{
+ ³
\ No newline at end of file
diff --git a/test/de_fuzz/corpus/225eb59d94a2ccab6023e47b6a1e9319f8b543f0 b/test/de_fuzz/corpus/225eb59d94a2ccab6023e47b6a1e9319f8b543f0
new file mode 100644
index 00000000..48072721
Binary files /dev/null and b/test/de_fuzz/corpus/225eb59d94a2ccab6023e47b6a1e9319f8b543f0 differ
diff --git a/test/de_fuzz/corpus/226996148d26b4c5f5383b06fde6833a485bf912 b/test/de_fuzz/corpus/226996148d26b4c5f5383b06fde6833a485bf912
new file mode 100644
index 00000000..3be72aae
Binary files /dev/null and b/test/de_fuzz/corpus/226996148d26b4c5f5383b06fde6833a485bf912 differ
diff --git a/test/de_fuzz/corpus/22a57b0d17246dc257203cea101270851202260b b/test/de_fuzz/corpus/22a57b0d17246dc257203cea101270851202260b
new file mode 100644
index 00000000..641800ed
--- /dev/null
+++ b/test/de_fuzz/corpus/22a57b0d17246dc257203cea101270851202260b
@@ -0,0 +1,129 @@
+'è (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* # optional leading comment
+(?: (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+) # initial word
+(?: (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] itial subdomain
+(?: #
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. # if led by a period...
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # ...further okay
+)*
+(?: (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* , (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ial subdomain
+(?: #
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. # if led by a period...
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # ...further okay
+)*
+)* # further okay, if led by comma
+: # closing colon
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* )? # optional route
+(?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+) # initial word
+(?: (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\l subdomain
+(?: #
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. # if led by a period...
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atfm
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+) )* # further okay, if led by a period
+(?: [\040\t][[:Format:]][^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* @ (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # initial subdomain
+(?: #
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. # if led by a period...
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # ...further okay
+)*
+# address spec
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* > # trailing >
+# name and address
+) (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* # optional trailing comment
+
+
\ No newline at end of file
diff --git a/test/de_fuzz/corpus/22af9fd87969f57dd4d80152d997ce6fd5809d9b b/test/de_fuzz/corpus/22af9fd87969f57dd4d80152d997ce6fd5809d9b
new file mode 100644
index 00000000..e7dfe92c
Binary files /dev/null and b/test/de_fuzz/corpus/22af9fd87969f57dd4d80152d997ce6fd5809d9b differ
diff --git a/test/de_fuzz/corpus/22bfa3f9eaccf0df7d7c42e77904e5db3353759b b/test/de_fuzz/corpus/22bfa3f9eaccf0df7d7c42e77904e5db3353759b
new file mode 100644
index 00000000..557f8393
Binary files /dev/null and b/test/de_fuzz/corpus/22bfa3f9eaccf0df7d7c42e77904e5db3353759b differ
diff --git a/test/de_fuzz/corpus/22d8a49621f6b6ace23eeb4cd9f0a27eaf416971 b/test/de_fuzz/corpus/22d8a49621f6b6ace23eeb4cd9f0a27eaf416971
new file mode 100644
index 00000000..ee8d0b8a
Binary files /dev/null and b/test/de_fuzz/corpus/22d8a49621f6b6ace23eeb4cd9f0a27eaf416971 differ
diff --git a/test/de_fuzz/corpus/22d9cb56b55fa6003a02a36ec7a0a97cb1463acc b/test/de_fuzz/corpus/22d9cb56b55fa6003a02a36ec7a0a97cb1463acc
new file mode 100644
index 00000000..0510a36e
Binary files /dev/null and b/test/de_fuzz/corpus/22d9cb56b55fa6003a02a36ec7a0a97cb1463acc differ
diff --git a/test/de_fuzz/corpus/22ebaf736a208b1cf96dc80015fea07bef3dd82f b/test/de_fuzz/corpus/22ebaf736a208b1cf96dc80015fea07bef3dd82f
new file mode 100644
index 00000000..6df14e07
Binary files /dev/null and b/test/de_fuzz/corpus/22ebaf736a208b1cf96dc80015fea07bef3dd82f differ
diff --git a/test/de_fuzz/corpus/22efbb15bcd8fb9e83397e874106e635b693005d b/test/de_fuzz/corpus/22efbb15bcd8fb9e83397e874106e635b693005d
new file mode 100644
index 00000000..ad72706c
Binary files /dev/null and b/test/de_fuzz/corpus/22efbb15bcd8fb9e83397e874106e635b693005d differ
diff --git a/test/de_fuzz/corpus/22f833c66c0f42d7c2f9d29ac83232b4e705ea3d b/test/de_fuzz/corpus/22f833c66c0f42d7c2f9d29ac83232b4e705ea3d
new file mode 100644
index 00000000..44da2970
Binary files /dev/null and b/test/de_fuzz/corpus/22f833c66c0f42d7c2f9d29ac83232b4e705ea3d differ
diff --git a/test/de_fuzz/corpus/234c264183d1682eeb5f20158d49c7cacce250c6 b/test/de_fuzz/corpus/234c264183d1682eeb5f20158d49c7cacce250c6
new file mode 100644
index 00000000..7ba5de5e
Binary files /dev/null and b/test/de_fuzz/corpus/234c264183d1682eeb5f20158d49c7cacce250c6 differ
diff --git a/test/de_fuzz/corpus/2372123756b37bab7d25ddbc64edb413425f8b01 b/test/de_fuzz/corpus/2372123756b37bab7d25ddbc64edb413425f8b01
new file mode 100644
index 00000000..ef025da8
Binary files /dev/null and b/test/de_fuzz/corpus/2372123756b37bab7d25ddbc64edb413425f8b01 differ
diff --git a/test/de_fuzz/corpus/2374ecf0668b2adbd2a6425453835fc20a47b6a6 b/test/de_fuzz/corpus/2374ecf0668b2adbd2a6425453835fc20a47b6a6
new file mode 100644
index 00000000..42b175c7
Binary files /dev/null and b/test/de_fuzz/corpus/2374ecf0668b2adbd2a6425453835fc20a47b6a6 differ
diff --git a/test/de_fuzz/corpus/2380f03162a2139983b13fa4c5ae2a7f7e305323 b/test/de_fuzz/corpus/2380f03162a2139983b13fa4c5ae2a7f7e305323
new file mode 100644
index 00000000..16818e09
Binary files /dev/null and b/test/de_fuzz/corpus/2380f03162a2139983b13fa4c5ae2a7f7e305323 differ
diff --git a/test/de_fuzz/corpus/2389288aff8db60addf59cef34d87a5690c0ea7a b/test/de_fuzz/corpus/2389288aff8db60addf59cef34d87a5690c0ea7a
new file mode 100644
index 00000000..37e9ab7f
--- /dev/null
+++ b/test/de_fuzz/corpus/2389288aff8db60addf59cef34d87a5690c0ea7a
@@ -0,0 +1,127 @@
+'è (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* # optional le\Qing comment
+(?: (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+) # initial word
+(?: (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^?x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+) )* # further okay, if led by a period
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* @ (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x8qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq0-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # initial subdomain
+(?: #
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. # if led by a period...
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # ...further okay
+)*
+# address
+| # or
+(?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+) # closing colon
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* )? # optional route
+(?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+) # initial word
+(?: (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+) )* # further okay, if led by a period
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* @ (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # initial subdomain
+(?: #
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x8 address spec
+(?: [\040\t] | \(
+(?: [^\\\x80 # if led by a period...
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # ...further okay
+)*
+# address spec
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\)ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ )* > # trailing >
+# name and address
+) (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* # optional trailing comment
+
+
\ No newline at end of file
diff --git a/test/de_fuzz/corpus/23c7dd0cf89b7b3b057de9e63b33b4ff4ed55796 b/test/de_fuzz/corpus/23c7dd0cf89b7b3b057de9e63b33b4ff4ed55796
new file mode 100644
index 00000000..3662795f
Binary files /dev/null and b/test/de_fuzz/corpus/23c7dd0cf89b7b3b057de9e63b33b4ff4ed55796 differ
diff --git a/test/de_fuzz/corpus/23e9127e044c64f51973b9d3a08d408d900a9632 b/test/de_fuzz/corpus/23e9127e044c64f51973b9d3a08d408d900a9632
new file mode 100644
index 00000000..29c3af07
--- /dev/null
+++ b/test/de_fuzz/corpus/23e9127e044c64f51973b9d3a08d408d900a9632
@@ -0,0 +1 @@
+Z(((((((a+)+)+)+)+)+)+)+|Y(((((((a+)+)+)+)+)+)+)+|X(((((((a+)+)+)+)+)+)+)+|W((((a++()(()+)+)+)+)+)+|V(((((((a+)+)+)+)+)+)+)+|CZ(((((((a+)+)+)Ï)+)+)+)+|CY(((((((a+)+)+)+)+)+)+)+|CX(((((((a+)+)+)+)+)+)+)+|CW(((((((a+)+)+)+)+)+)+)+|CV(((((((a+)+)+)+)+)+)+)+|(a+)+bc
\ No newline at end of file
diff --git a/test/de_fuzz/corpus/23ec75e5baf5d46e6cfa77e931d9bbace1969fbe b/test/de_fuzz/corpus/23ec75e5baf5d46e6cfa77e931d9bbace1969fbe
new file mode 100644
index 00000000..bbebb6fc
--- /dev/null
+++ b/test/de_fuzz/corpus/23ec75e5baf5d46e6cfa77e931d9bbace1969fbe
@@ -0,0 +1 @@
+8^\l*(?:((.*?)?\W*(?1)\W*(.)\W*(?mmmmmmommmmmmmmmmmmmmm3)\[[:space:]]*))]W*$TheW*$The quick brown )ox !
\ No newline at end of file
diff --git a/test/de_fuzz/corpus/23ffbc589b62ac4648ccfb72495fb4f695d1b34f b/test/de_fuzz/corpus/23ffbc589b62ac4648ccfb72495fb4f695d1b34f
new file mode 100644
index 00000000..088b3121
Binary files /dev/null and b/test/de_fuzz/corpus/23ffbc589b62ac4648ccfb72495fb4f695d1b34f differ
diff --git a/test/de_fuzz/corpus/240b7e0f425bca21db8fae5188d374f102bd3cde b/test/de_fuzz/corpus/240b7e0f425bca21db8fae5188d374f102bd3cde
new file mode 100644
index 00000000..6118638c
Binary files /dev/null and b/test/de_fuzz/corpus/240b7e0f425bca21db8fae5188d374f102bd3cde differ
diff --git a/test/de_fuzz/corpus/241345bab245aaeaa25667317c7099af3afda041 b/test/de_fuzz/corpus/241345bab245aaeaa25667317c7099af3afda041
new file mode 100644
index 00000000..dce238a5
Binary files /dev/null and b/test/de_fuzz/corpus/241345bab245aaeaa25667317c7099af3afda041 differ
diff --git a/test/de_fuzz/corpus/2415bcefc7bbb819b9a41b835d2153402dfb368f b/test/de_fuzz/corpus/2415bcefc7bbb819b9a41b835d2153402dfb368f
new file mode 100644
index 00000000..b4da40ea
--- /dev/null
+++ b/test/de_fuzz/corpus/2415bcefc7bbb819b9a41b835d2153402dfb368f
@@ -0,0 +1 @@
+
((*ACCEPT)›››››››››››››\L™››››››››(?>a(?i)bc)*ACCEPT)›››››››››››››\L™››››››››(?>a(?i)bc)ba++c
\ No newline at end of file
diff --git a/test/de_fuzz/corpus/243ff8e74ecc3233a2fd6be0c6c5244ca43467c7 b/test/de_fuzz/corpus/243ff8e74ecc3233a2fd6be0c6c5244ca43467c7
new file mode 100644
index 00000000..4deb2bcb
--- /dev/null
+++ b/test/de_fuzz/corpus/243ff8e74ecc3233a2fd6be0c6c5244ca43467c7
@@ -0,0 +1 @@
+Z(((((((a+)+)+)+)+)+)+)+|Y(((((((a+)+)+)++)+)+)+|CY(((((((a+)+)+)+)+)+)«)+|CX(((((((a+)+)+)+)+)+)+)+|CW(((((((a+)+)+)+)+)+)+)+|CV(((((((a+)+)+)+)+)+)+)+|!a+)+bc
\ No newline at end of file
diff --git a/test/de_fuzz/corpus/2479a71abc10392f691268aaccca47ccb04d578e b/test/de_fuzz/corpus/2479a71abc10392f691268aaccca47ccb04d578e
new file mode 100644
index 00000000..e6a643a6
Binary files /dev/null and b/test/de_fuzz/corpus/2479a71abc10392f691268aaccca47ccb04d578e differ
diff --git a/test/de_fuzz/corpus/247ebeafee24a177bd579b44b84cf9278fc477b4 b/test/de_fuzz/corpus/247ebeafee24a177bd579b44b84cf9278fc477b4
new file mode 100644
index 00000000..905fd622
Binary files /dev/null and b/test/de_fuzz/corpus/247ebeafee24a177bd579b44b84cf9278fc477b4 differ
diff --git a/test/de_fuzz/corpus/24a6982e83332dc2560457bb5d9a1928f21ccdeb b/test/de_fuzz/corpus/24a6982e83332dc2560457bb5d9a1928f21ccdeb
new file mode 100644
index 00000000..7425d08b
Binary files /dev/null and b/test/de_fuzz/corpus/24a6982e83332dc2560457bb5d9a1928f21ccdeb differ
diff --git a/test/de_fuzz/corpus/24ed43a04a110fd2a2b39ea52f184e45633bfa09 b/test/de_fuzz/corpus/24ed43a04a110fd2a2b39ea52f184e45633bfa09
new file mode 100644
index 00000000..c44f2dc3
Binary files /dev/null and b/test/de_fuzz/corpus/24ed43a04a110fd2a2b39ea52f184e45633bfa09 differ
diff --git a/test/de_fuzz/corpus/24f9cc2832e16f5e8b81bc5a0e35258e598d5397 b/test/de_fuzz/corpus/24f9cc2832e16f5e8b81bc5a0e35258e598d5397
new file mode 100644
index 00000000..b5749311
Binary files /dev/null and b/test/de_fuzz/corpus/24f9cc2832e16f5e8b81bc5a0e35258e598d5397 differ
diff --git a/test/de_fuzz/corpus/24fb377f9ee883f5ed065e25d6cd39d53a317b49 b/test/de_fuzz/corpus/24fb377f9ee883f5ed065e25d6cd39d53a317b49
new file mode 100644
index 00000000..d7408cc6
Binary files /dev/null and b/test/de_fuzz/corpus/24fb377f9ee883f5ed065e25d6cd39d53a317b49 differ
diff --git a/test/de_fuzz/corpus/2531b772b30d580e47dab5398847c68e107b2095 b/test/de_fuzz/corpus/2531b772b30d580e47dab5398847c68e107b2095
new file mode 100644
index 00000000..78b19cf8
Binary files /dev/null and b/test/de_fuzz/corpus/2531b772b30d580e47dab5398847c68e107b2095 differ
diff --git a/test/de_fuzz/corpus/256f28138ac7e6eb4cf8c93831ad9873ad0555a7 b/test/de_fuzz/corpus/256f28138ac7e6eb4cf8c93831ad9873ad0555a7
new file mode 100644
index 00000000..fc407c8c
Binary files /dev/null and b/test/de_fuzz/corpus/256f28138ac7e6eb4cf8c93831ad9873ad0555a7 differ
diff --git a/test/de_fuzz/corpus/257445cef2811facfaf0582e6ad6c205a8148b4d b/test/de_fuzz/corpus/257445cef2811facfaf0582e6ad6c205a8148b4d
new file mode 100644
index 00000000..ab1e1f7e
Binary files /dev/null and b/test/de_fuzz/corpus/257445cef2811facfaf0582e6ad6c205a8148b4d differ
diff --git a/test/de_fuzz/corpus/2589a267aa31f85c3af87b85414945a98e102f72 b/test/de_fuzz/corpus/2589a267aa31f85c3af87b85414945a98e102f72
new file mode 100644
index 00000000..12c982a2
Binary files /dev/null and b/test/de_fuzz/corpus/2589a267aa31f85c3af87b85414945a98e102f72 differ
diff --git a/test/de_fuzz/corpus/25b68a4e7a0c06425a2cec3cfd385c63653dc37a b/test/de_fuzz/corpus/25b68a4e7a0c06425a2cec3cfd385c63653dc37a
new file mode 100644
index 00000000..cc09b54a
Binary files /dev/null and b/test/de_fuzz/corpus/25b68a4e7a0c06425a2cec3cfd385c63653dc37a differ
diff --git a/test/de_fuzz/corpus/25cc98c26568667d7e7a2ddd0ee17aff75963f3c b/test/de_fuzz/corpus/25cc98c26568667d7e7a2ddd0ee17aff75963f3c
new file mode 100644
index 00000000..0c8991c9
Binary files /dev/null and b/test/de_fuzz/corpus/25cc98c26568667d7e7a2ddd0ee17aff75963f3c differ
diff --git a/test/de_fuzz/corpus/25d407d104a2080ba4ee646da795dfb123a7a85b b/test/de_fuzz/corpus/25d407d104a2080ba4ee646da795dfb123a7a85b
new file mode 100644
index 00000000..749ca11c
Binary files /dev/null and b/test/de_fuzz/corpus/25d407d104a2080ba4ee646da795dfb123a7a85b differ
diff --git a/test/de_fuzz/corpus/25fb5ad986c3d44de1c1538c95c8434cbfb8756f b/test/de_fuzz/corpus/25fb5ad986c3d44de1c1538c95c8434cbfb8756f
new file mode 100644
index 00000000..596a7475
Binary files /dev/null and b/test/de_fuzz/corpus/25fb5ad986c3d44de1c1538c95c8434cbfb8756f differ
diff --git a/test/de_fuzz/corpus/2612f22302f96f559a6ce0b7a5e0eeb8fb731c4b b/test/de_fuzz/corpus/2612f22302f96f559a6ce0b7a5e0eeb8fb731c4b
new file mode 100644
index 00000000..cbaa78a6
Binary files /dev/null and b/test/de_fuzz/corpus/2612f22302f96f559a6ce0b7a5e0eeb8fb731c4b differ
diff --git a/test/de_fuzz/corpus/264b1991909db04e3381559427699c5f90c986c6 b/test/de_fuzz/corpus/264b1991909db04e3381559427699c5f90c986c6
new file mode 100644
index 00000000..8f87ec07
Binary files /dev/null and b/test/de_fuzz/corpus/264b1991909db04e3381559427699c5f90c986c6 differ
diff --git a/test/de_fuzz/corpus/266aafab7016ce4e31560f8d7b8c37c116ff6c8b b/test/de_fuzz/corpus/266aafab7016ce4e31560f8d7b8c37c116ff6c8b
new file mode 100644
index 00000000..a5e7149f
--- /dev/null
+++ b/test/de_fuzz/corpus/266aafab7016ce4e31560f8d7b8c37c116ff6c8b
@@ -0,0 +1 @@
+Z(((((((a+)+)+)+)+)+)+š+|Y(((((((a+)+)+)+)+)+)+)+|X(((((((a+)+)+)+)+)+)+)+|W(((((((a+)+)+)+)k)+)+)+;(V((()+)+|Y(((Ø××מÔÖÏ)+)+)+)+)+)+|X(((((((a+)+)+)+)+)+)+)+|W(((((((a+)+)+)+)+)+)+)+;|V(((((((a+)+)+)+)+)+)+)+|CZ(((((((a+)+)+)+)+)+)+)+|CY(((((((a+)+)+)+)+)+)+)+|CX(((((((a+)+)+)+)+)+)+)+|CW(((((((a+)+)+)+((((a+)+)+)+)+)+)+)+|CZ(((((((a+)+)+)+)+)+)+)+|CY(((((((a+)+)+)+)+)+)+)+|CX(((((((a+)+)+)+)+)+)+)+|CW(((((((a+)+)+)+)+)+)+)+|CV,((((((a+)+)+)+)+)+)+)+|(a+)+bc
\ No newline at end of file
diff --git a/test/de_fuzz/corpus/26ac263818459c65d33efc0cd72cafe84c57ff62 b/test/de_fuzz/corpus/26ac263818459c65d33efc0cd72cafe84c57ff62
new file mode 100644
index 00000000..c8d17422
Binary files /dev/null and b/test/de_fuzz/corpus/26ac263818459c65d33efc0cd72cafe84c57ff62 differ
diff --git a/test/de_fuzz/corpus/26aedb09e4609c7d582f7a6a76155518397ff4a4 b/test/de_fuzz/corpus/26aedb09e4609c7d582f7a6a76155518397ff4a4
new file mode 100644
index 00000000..5e28290f
Binary files /dev/null and b/test/de_fuzz/corpus/26aedb09e4609c7d582f7a6a76155518397ff4a4 differ
diff --git a/test/de_fuzz/corpus/26b5b415d24cc157df5b1313275096f91acca896 b/test/de_fuzz/corpus/26b5b415d24cc157df5b1313275096f91acca896
new file mode 100644
index 00000000..804439b1
Binary files /dev/null and b/test/de_fuzz/corpus/26b5b415d24cc157df5b1313275096f91acca896 differ
diff --git a/test/de_fuzz/corpus/26dc35f9be3148a0ab448bec0f35a4b494419079 b/test/de_fuzz/corpus/26dc35f9be3148a0ab448bec0f35a4b494419079
new file mode 100644
index 00000000..3535a54a
Binary files /dev/null and b/test/de_fuzz/corpus/26dc35f9be3148a0ab448bec0f35a4b494419079 differ
diff --git a/test/de_fuzz/corpus/26e0d77c58dffecf29ddec788daaee394a15d18d b/test/de_fuzz/corpus/26e0d77c58dffecf29ddec788daaee394a15d18d
new file mode 100644
index 00000000..e262ddf0
Binary files /dev/null and b/test/de_fuzz/corpus/26e0d77c58dffecf29ddec788daaee394a15d18d differ
diff --git a/test/de_fuzz/corpus/26eec06a7194ffde11cfeb903e3866360af16023 b/test/de_fuzz/corpus/26eec06a7194ffde11cfeb903e3866360af16023
new file mode 100644
index 00000000..9b6fb471
Binary files /dev/null and b/test/de_fuzz/corpus/26eec06a7194ffde11cfeb903e3866360af16023 differ
diff --git a/test/de_fuzz/corpus/272c7241f4cc13ae4a4c6b9b1cd8784bea7c56e7 b/test/de_fuzz/corpus/272c7241f4cc13ae4a4c6b9b1cd8784bea7c56e7
new file mode 100644
index 00000000..bbbe3c51
Binary files /dev/null and b/test/de_fuzz/corpus/272c7241f4cc13ae4a4c6b9b1cd8784bea7c56e7 differ
diff --git a/test/de_fuzz/corpus/27336d067648a82dc6174340c3fc6f93db99e225 b/test/de_fuzz/corpus/27336d067648a82dc6174340c3fc6f93db99e225
new file mode 100644
index 00000000..ebd4700f
Binary files /dev/null and b/test/de_fuzz/corpus/27336d067648a82dc6174340c3fc6f93db99e225 differ
diff --git a/test/de_fuzz/corpus/2734205c4e29821522b57cca6335b64694f35a94 b/test/de_fuzz/corpus/2734205c4e29821522b57cca6335b64694f35a94
new file mode 100644
index 00000000..6f82c58e
Binary files /dev/null and b/test/de_fuzz/corpus/2734205c4e29821522b57cca6335b64694f35a94 differ
diff --git a/test/de_fuzz/corpus/273ac693e1beff20a66a093bc57e388df43ad82c b/test/de_fuzz/corpus/273ac693e1beff20a66a093bc57e388df43ad82c
new file mode 100644
index 00000000..c9e9cc58
Binary files /dev/null and b/test/de_fuzz/corpus/273ac693e1beff20a66a093bc57e388df43ad82c differ
diff --git a/test/de_fuzz/corpus/276828778907073e9b893162c9a44f8eaf703552 b/test/de_fuzz/corpus/276828778907073e9b893162c9a44f8eaf703552
new file mode 100644
index 00000000..2b2fb78d
Binary files /dev/null and b/test/de_fuzz/corpus/276828778907073e9b893162c9a44f8eaf703552 differ
diff --git a/test/de_fuzz/corpus/277856ce34d36fae0cee4e5cb73d1b7175735e8f b/test/de_fuzz/corpus/277856ce34d36fae0cee4e5cb73d1b7175735e8f
new file mode 100644
index 00000000..6be381dd
Binary files /dev/null and b/test/de_fuzz/corpus/277856ce34d36fae0cee4e5cb73d1b7175735e8f differ
diff --git a/test/de_fuzz/corpus/277940ae41900801f96688ca21763868338d3637 b/test/de_fuzz/corpus/277940ae41900801f96688ca21763868338d3637
new file mode 100644
index 00000000..89121956
Binary files /dev/null and b/test/de_fuzz/corpus/277940ae41900801f96688ca21763868338d3637 differ
diff --git a/test/de_fuzz/corpus/2795e2ac813a371004aa5a9cfccd1e28b787f0aa b/test/de_fuzz/corpus/2795e2ac813a371004aa5a9cfccd1e28b787f0aa
new file mode 100644
index 00000000..e0a0a756
Binary files /dev/null and b/test/de_fuzz/corpus/2795e2ac813a371004aa5a9cfccd1e28b787f0aa differ
diff --git a/test/de_fuzz/corpus/279bd0fa8c12cba3f9a807314c77df18f95bc6cd b/test/de_fuzz/corpus/279bd0fa8c12cba3f9a807314c77df18f95bc6cd
new file mode 100644
index 00000000..682f085f
Binary files /dev/null and b/test/de_fuzz/corpus/279bd0fa8c12cba3f9a807314c77df18f95bc6cd differ
diff --git a/test/de_fuzz/corpus/27aa3e268306e283caf70004d62cf04bea7172a3 b/test/de_fuzz/corpus/27aa3e268306e283caf70004d62cf04bea7172a3
new file mode 100644
index 00000000..e80fd504
Binary files /dev/null and b/test/de_fuzz/corpus/27aa3e268306e283caf70004d62cf04bea7172a3 differ
diff --git a/test/de_fuzz/corpus/27e43836123c649e6484a5f55aaed50a8d3fa26f b/test/de_fuzz/corpus/27e43836123c649e6484a5f55aaed50a8d3fa26f
new file mode 100644
index 00000000..2df4a03b
Binary files /dev/null and b/test/de_fuzz/corpus/27e43836123c649e6484a5f55aaed50a8d3fa26f differ
diff --git a/test/de_fuzz/corpus/283fd78d234f18956a4d35661d38a16aa4817430 b/test/de_fuzz/corpus/283fd78d234f18956a4d35661d38a16aa4817430
new file mode 100644
index 00000000..8218b239
Binary files /dev/null and b/test/de_fuzz/corpus/283fd78d234f18956a4d35661d38a16aa4817430 differ
diff --git a/test/de_fuzz/corpus/285795a6d7b777bb2a382cfad688e52e78e67bc6 b/test/de_fuzz/corpus/285795a6d7b777bb2a382cfad688e52e78e67bc6
new file mode 100644
index 00000000..98f769eb
Binary files /dev/null and b/test/de_fuzz/corpus/285795a6d7b777bb2a382cfad688e52e78e67bc6 differ
diff --git a/test/de_fuzz/corpus/287fa370f7afa14d373c824681d4680d39e6e71d b/test/de_fuzz/corpus/287fa370f7afa14d373c824681d4680d39e6e71d
new file mode 100644
index 00000000..31b9f680
Binary files /dev/null and b/test/de_fuzz/corpus/287fa370f7afa14d373c824681d4680d39e6e71d differ
diff --git a/test/de_fuzz/corpus/28aa0e4404070c4db838909d4b23ab37fc9c2d75 b/test/de_fuzz/corpus/28aa0e4404070c4db838909d4b23ab37fc9c2d75
new file mode 100644
index 00000000..24a5e39a
Binary files /dev/null and b/test/de_fuzz/corpus/28aa0e4404070c4db838909d4b23ab37fc9c2d75 differ
diff --git a/test/de_fuzz/corpus/28c085c77bfbe505688519f172b04aa9a9a15545 b/test/de_fuzz/corpus/28c085c77bfbe505688519f172b04aa9a9a15545
new file mode 100644
index 00000000..7b48bf08
Binary files /dev/null and b/test/de_fuzz/corpus/28c085c77bfbe505688519f172b04aa9a9a15545 differ
diff --git a/test/de_fuzz/corpus/28ca452021d408611f328ff6987e3288cba117dc b/test/de_fuzz/corpus/28ca452021d408611f328ff6987e3288cba117dc
new file mode 100644
index 00000000..72046f1d
Binary files /dev/null and b/test/de_fuzz/corpus/28ca452021d408611f328ff6987e3288cba117dc differ
diff --git a/test/de_fuzz/corpus/28f6f84b7ce121e79aa134c7653a45d6cb7bc55b b/test/de_fuzz/corpus/28f6f84b7ce121e79aa134c7653a45d6cb7bc55b
new file mode 100644
index 00000000..24385fcc
Binary files /dev/null and b/test/de_fuzz/corpus/28f6f84b7ce121e79aa134c7653a45d6cb7bc55b differ
diff --git a/test/de_fuzz/corpus/290abc4c49f545140b5dcd339e0c275523cd305d b/test/de_fuzz/corpus/290abc4c49f545140b5dcd339e0c275523cd305d
new file mode 100644
index 00000000..e312b3b5
Binary files /dev/null and b/test/de_fuzz/corpus/290abc4c49f545140b5dcd339e0c275523cd305d differ
diff --git a/test/de_fuzz/corpus/290c296e90501f0942cfb26d0bdc0f8b26becd8e b/test/de_fuzz/corpus/290c296e90501f0942cfb26d0bdc0f8b26becd8e
new file mode 100644
index 00000000..d7d52170
Binary files /dev/null and b/test/de_fuzz/corpus/290c296e90501f0942cfb26d0bdc0f8b26becd8e differ
diff --git a/test/de_fuzz/corpus/29143d1f21cd02a77056e5946070024c0023d66d b/test/de_fuzz/corpus/29143d1f21cd02a77056e5946070024c0023d66d
new file mode 100644
index 00000000..a6e684fc
Binary files /dev/null and b/test/de_fuzz/corpus/29143d1f21cd02a77056e5946070024c0023d66d differ
diff --git a/test/de_fuzz/corpus/292d01b1fa5e2f181ece6cf0210fdbdfc90b467d b/test/de_fuzz/corpus/292d01b1fa5e2f181ece6cf0210fdbdfc90b467d
new file mode 100644
index 00000000..723e4e28
Binary files /dev/null and b/test/de_fuzz/corpus/292d01b1fa5e2f181ece6cf0210fdbdfc90b467d differ
diff --git a/test/de_fuzz/corpus/293815784e35a1068145c9e9330c8db52fa61607 b/test/de_fuzz/corpus/293815784e35a1068145c9e9330c8db52fa61607
new file mode 100644
index 00000000..1286de43
Binary files /dev/null and b/test/de_fuzz/corpus/293815784e35a1068145c9e9330c8db52fa61607 differ
diff --git a/test/de_fuzz/corpus/2938357c31c15ca3630165ea58366f2ac8b53d55 b/test/de_fuzz/corpus/2938357c31c15ca3630165ea58366f2ac8b53d55
new file mode 100644
index 00000000..9efe6564
Binary files /dev/null and b/test/de_fuzz/corpus/2938357c31c15ca3630165ea58366f2ac8b53d55 differ
diff --git a/test/de_fuzz/corpus/29588128e53b6cb934e835dbfe440138702aacf8 b/test/de_fuzz/corpus/29588128e53b6cb934e835dbfe440138702aacf8
new file mode 100644
index 00000000..546ca8ec
Binary files /dev/null and b/test/de_fuzz/corpus/29588128e53b6cb934e835dbfe440138702aacf8 differ
diff --git a/test/de_fuzz/corpus/29a708cc9c703a518cec03b65520876277b4d25f b/test/de_fuzz/corpus/29a708cc9c703a518cec03b65520876277b4d25f
new file mode 100644
index 00000000..255de15e
Binary files /dev/null and b/test/de_fuzz/corpus/29a708cc9c703a518cec03b65520876277b4d25f differ
diff --git a/test/de_fuzz/corpus/29a8714c7661cf21f3b9e393a099e583fd6238c7 b/test/de_fuzz/corpus/29a8714c7661cf21f3b9e393a099e583fd6238c7
new file mode 100644
index 00000000..ba69aadf
Binary files /dev/null and b/test/de_fuzz/corpus/29a8714c7661cf21f3b9e393a099e583fd6238c7 differ
diff --git a/test/de_fuzz/corpus/29e186f0d25f8704a9d5b8fd9aa384a65134d7bc b/test/de_fuzz/corpus/29e186f0d25f8704a9d5b8fd9aa384a65134d7bc
new file mode 100644
index 00000000..c326b208
Binary files /dev/null and b/test/de_fuzz/corpus/29e186f0d25f8704a9d5b8fd9aa384a65134d7bc differ
diff --git a/test/de_fuzz/corpus/2a2bff5141004d0b71f2ee02d167e2cc610ffaf3 b/test/de_fuzz/corpus/2a2bff5141004d0b71f2ee02d167e2cc610ffaf3
new file mode 100644
index 00000000..8bfb9f82
Binary files /dev/null and b/test/de_fuzz/corpus/2a2bff5141004d0b71f2ee02d167e2cc610ffaf3 differ
diff --git a/test/de_fuzz/corpus/2a4f6f426d21ae9d69309b36d3ccef00ebca899c b/test/de_fuzz/corpus/2a4f6f426d21ae9d69309b36d3ccef00ebca899c
new file mode 100644
index 00000000..e04f2023
Binary files /dev/null and b/test/de_fuzz/corpus/2a4f6f426d21ae9d69309b36d3ccef00ebca899c differ
diff --git a/test/de_fuzz/corpus/2a5a9a891078684058b6df5ca3bf30cbfdc335a3 b/test/de_fuzz/corpus/2a5a9a891078684058b6df5ca3bf30cbfdc335a3
new file mode 100644
index 00000000..4ed7bd00
Binary files /dev/null and b/test/de_fuzz/corpus/2a5a9a891078684058b6df5ca3bf30cbfdc335a3 differ
diff --git a/test/de_fuzz/corpus/2a948b4accd77470c74cbb9a90c5a1c536532df0 b/test/de_fuzz/corpus/2a948b4accd77470c74cbb9a90c5a1c536532df0
new file mode 100644
index 00000000..35e81cc5
Binary files /dev/null and b/test/de_fuzz/corpus/2a948b4accd77470c74cbb9a90c5a1c536532df0 differ
diff --git a/test/de_fuzz/corpus/2ac248d9dd0460746954dca7038517021145bb15 b/test/de_fuzz/corpus/2ac248d9dd0460746954dca7038517021145bb15
new file mode 100644
index 00000000..9b873355
Binary files /dev/null and b/test/de_fuzz/corpus/2ac248d9dd0460746954dca7038517021145bb15 differ
diff --git a/test/de_fuzz/corpus/2adadc025fc72b30fdb91ea40bc9395e3591bb2e b/test/de_fuzz/corpus/2adadc025fc72b30fdb91ea40bc9395e3591bb2e
new file mode 100644
index 00000000..90ed4b0b
Binary files /dev/null and b/test/de_fuzz/corpus/2adadc025fc72b30fdb91ea40bc9395e3591bb2e differ
diff --git a/test/de_fuzz/corpus/2ae34189a04c2ad34f9ceb1c3218bf93aacfeafc b/test/de_fuzz/corpus/2ae34189a04c2ad34f9ceb1c3218bf93aacfeafc
new file mode 100644
index 00000000..2a49fbd7
Binary files /dev/null and b/test/de_fuzz/corpus/2ae34189a04c2ad34f9ceb1c3218bf93aacfeafc differ
diff --git a/test/de_fuzz/corpus/2af58752036c4ae33bb405ae04dac81b17688e5a b/test/de_fuzz/corpus/2af58752036c4ae33bb405ae04dac81b17688e5a
new file mode 100644
index 00000000..d0167dbc
Binary files /dev/null and b/test/de_fuzz/corpus/2af58752036c4ae33bb405ae04dac81b17688e5a differ
diff --git a/test/de_fuzz/corpus/2b36d0779f2e3a5e21dd1818ce67694f42b0af62 b/test/de_fuzz/corpus/2b36d0779f2e3a5e21dd1818ce67694f42b0af62
new file mode 100644
index 00000000..1d957556
Binary files /dev/null and b/test/de_fuzz/corpus/2b36d0779f2e3a5e21dd1818ce67694f42b0af62 differ
diff --git a/test/de_fuzz/corpus/2b55d47b94b80e38e9c5453fe702caf976884eeb b/test/de_fuzz/corpus/2b55d47b94b80e38e9c5453fe702caf976884eeb
new file mode 100644
index 00000000..41203339
Binary files /dev/null and b/test/de_fuzz/corpus/2b55d47b94b80e38e9c5453fe702caf976884eeb differ
diff --git a/test/de_fuzz/corpus/2b6aceb904ba79fa3d0bbc4dca556cc629837d75 b/test/de_fuzz/corpus/2b6aceb904ba79fa3d0bbc4dca556cc629837d75
new file mode 100644
index 00000000..edb71824
Binary files /dev/null and b/test/de_fuzz/corpus/2b6aceb904ba79fa3d0bbc4dca556cc629837d75 differ
diff --git a/test/de_fuzz/corpus/2b72338973830bab50c196f3bd885bf45f4e1827 b/test/de_fuzz/corpus/2b72338973830bab50c196f3bd885bf45f4e1827
new file mode 100644
index 00000000..3b175140
Binary files /dev/null and b/test/de_fuzz/corpus/2b72338973830bab50c196f3bd885bf45f4e1827 differ
diff --git a/test/de_fuzz/corpus/2b7bce0be30e40b47f1ef6790927bca0a6959a4a b/test/de_fuzz/corpus/2b7bce0be30e40b47f1ef6790927bca0a6959a4a
new file mode 100644
index 00000000..eb7626c0
Binary files /dev/null and b/test/de_fuzz/corpus/2b7bce0be30e40b47f1ef6790927bca0a6959a4a differ
diff --git a/test/de_fuzz/corpus/2b809dd74175ea924b8aa514cb9498f4f22019ec b/test/de_fuzz/corpus/2b809dd74175ea924b8aa514cb9498f4f22019ec
new file mode 100644
index 00000000..b110a490
Binary files /dev/null and b/test/de_fuzz/corpus/2b809dd74175ea924b8aa514cb9498f4f22019ec differ
diff --git a/test/de_fuzz/corpus/2b80d16ac8c4b1b98cb411bba9bb8c8a629a977e b/test/de_fuzz/corpus/2b80d16ac8c4b1b98cb411bba9bb8c8a629a977e
new file mode 100644
index 00000000..de421e02
Binary files /dev/null and b/test/de_fuzz/corpus/2b80d16ac8c4b1b98cb411bba9bb8c8a629a977e differ
diff --git a/test/de_fuzz/corpus/2b9fd648cabf557cdbd0aa76841c0dc5c139b95c b/test/de_fuzz/corpus/2b9fd648cabf557cdbd0aa76841c0dc5c139b95c
new file mode 100644
index 00000000..91b15d26
Binary files /dev/null and b/test/de_fuzz/corpus/2b9fd648cabf557cdbd0aa76841c0dc5c139b95c differ
diff --git a/test/de_fuzz/corpus/2baeeff9d220b7c06c68f5e54a976d9aca779467 b/test/de_fuzz/corpus/2baeeff9d220b7c06c68f5e54a976d9aca779467
new file mode 100644
index 00000000..95661d74
Binary files /dev/null and b/test/de_fuzz/corpus/2baeeff9d220b7c06c68f5e54a976d9aca779467 differ
diff --git a/test/de_fuzz/corpus/2bce62cd6696aeed7f607bcf6b361f62026bf0b0 b/test/de_fuzz/corpus/2bce62cd6696aeed7f607bcf6b361f62026bf0b0
new file mode 100644
index 00000000..4bf7a63a
Binary files /dev/null and b/test/de_fuzz/corpus/2bce62cd6696aeed7f607bcf6b361f62026bf0b0 differ
diff --git a/test/de_fuzz/corpus/2c0236f941fcbaa3ce79de61377bcfb4b01abe96 b/test/de_fuzz/corpus/2c0236f941fcbaa3ce79de61377bcfb4b01abe96
new file mode 100644
index 00000000..8864b629
Binary files /dev/null and b/test/de_fuzz/corpus/2c0236f941fcbaa3ce79de61377bcfb4b01abe96 differ
diff --git a/test/de_fuzz/corpus/2c4edea716e112bfe38ae0b19b60e0542339a13e b/test/de_fuzz/corpus/2c4edea716e112bfe38ae0b19b60e0542339a13e
new file mode 100644
index 00000000..5f6d5f61
Binary files /dev/null and b/test/de_fuzz/corpus/2c4edea716e112bfe38ae0b19b60e0542339a13e differ
diff --git a/test/de_fuzz/corpus/2c588b82d6c5f285d60abf87923205b9ca44b2a6 b/test/de_fuzz/corpus/2c588b82d6c5f285d60abf87923205b9ca44b2a6
new file mode 100644
index 00000000..5bdf4e23
Binary files /dev/null and b/test/de_fuzz/corpus/2c588b82d6c5f285d60abf87923205b9ca44b2a6 differ
diff --git a/test/de_fuzz/corpus/2c633c18b73c1b3cb9c2d6cc23262851e1557ff8 b/test/de_fuzz/corpus/2c633c18b73c1b3cb9c2d6cc23262851e1557ff8
new file mode 100644
index 00000000..003dd1b9
Binary files /dev/null and b/test/de_fuzz/corpus/2c633c18b73c1b3cb9c2d6cc23262851e1557ff8 differ
diff --git a/test/de_fuzz/corpus/2c842a201339dc24cdeb4ec1c3c7d1f6862f929b b/test/de_fuzz/corpus/2c842a201339dc24cdeb4ec1c3c7d1f6862f929b
new file mode 100644
index 00000000..8bc988f7
Binary files /dev/null and b/test/de_fuzz/corpus/2c842a201339dc24cdeb4ec1c3c7d1f6862f929b differ
diff --git a/test/de_fuzz/corpus/2cae64aee27262518a0e0a93b8b06facc8cc888a b/test/de_fuzz/corpus/2cae64aee27262518a0e0a93b8b06facc8cc888a
new file mode 100644
index 00000000..c1a4b28b
--- /dev/null
+++ b/test/de_fuzz/corpus/2cae64aee27262518a0e0a93b8b06facc8cc888a
@@ -0,0 +1 @@
+@J\b(?:(?:(one)|(tone)|(two)þ(three)××?:,\G|\b)){3,}(?(1)|(?!))(?(2)|wo(|(three))(?:,|\b)){3,}(?(1)|(?!))(?(2)|(?!))(?(3)|(?!))one,three,two
\ No newline at end of file
diff --git a/test/de_fuzz/corpus/2d1247e11e85cac2e6645fe8459514bbd3dbccda b/test/de_fuzz/corpus/2d1247e11e85cac2e6645fe8459514bbd3dbccda
new file mode 100644
index 00000000..cee80956
Binary files /dev/null and b/test/de_fuzz/corpus/2d1247e11e85cac2e6645fe8459514bbd3dbccda differ
diff --git a/test/de_fuzz/corpus/2d163c01e72d9a9c26f4c7244dccda208683538d b/test/de_fuzz/corpus/2d163c01e72d9a9c26f4c7244dccda208683538d
new file mode 100644
index 00000000..88b072fe
Binary files /dev/null and b/test/de_fuzz/corpus/2d163c01e72d9a9c26f4c7244dccda208683538d differ
diff --git a/test/de_fuzz/corpus/2d1ba8ab8c6aeedec07b07cd2d0f8afedb157259 b/test/de_fuzz/corpus/2d1ba8ab8c6aeedec07b07cd2d0f8afedb157259
new file mode 100644
index 00000000..fc9ea959
Binary files /dev/null and b/test/de_fuzz/corpus/2d1ba8ab8c6aeedec07b07cd2d0f8afedb157259 differ
diff --git a/test/de_fuzz/corpus/2d2257007af2a0a4cde008373500347322309889 b/test/de_fuzz/corpus/2d2257007af2a0a4cde008373500347322309889
new file mode 100644
index 00000000..ee7ede5c
Binary files /dev/null and b/test/de_fuzz/corpus/2d2257007af2a0a4cde008373500347322309889 differ
diff --git a/test/de_fuzz/corpus/2d2c464cfa967026580b11a32d40be6b680a8f86 b/test/de_fuzz/corpus/2d2c464cfa967026580b11a32d40be6b680a8f86
new file mode 100644
index 00000000..5addb147
Binary files /dev/null and b/test/de_fuzz/corpus/2d2c464cfa967026580b11a32d40be6b680a8f86 differ
diff --git a/test/de_fuzz/corpus/2d683830d6d955e15dfe749a8158a41605f35cba b/test/de_fuzz/corpus/2d683830d6d955e15dfe749a8158a41605f35cba
new file mode 100644
index 00000000..4494c49e
Binary files /dev/null and b/test/de_fuzz/corpus/2d683830d6d955e15dfe749a8158a41605f35cba differ
diff --git a/test/de_fuzz/corpus/2d7e3abf18fea0172fb143cfc974ff861d120726 b/test/de_fuzz/corpus/2d7e3abf18fea0172fb143cfc974ff861d120726
new file mode 100644
index 00000000..40d63eb9
Binary files /dev/null and b/test/de_fuzz/corpus/2d7e3abf18fea0172fb143cfc974ff861d120726 differ
diff --git a/test/de_fuzz/corpus/2d82bbc0149c72351fb53177e2f0eb51f3bb9694 b/test/de_fuzz/corpus/2d82bbc0149c72351fb53177e2f0eb51f3bb9694
new file mode 100644
index 00000000..fe5c7cf1
Binary files /dev/null and b/test/de_fuzz/corpus/2d82bbc0149c72351fb53177e2f0eb51f3bb9694 differ
diff --git a/test/de_fuzz/corpus/2da5784197bc8166de0b9882fc9c34773913388d b/test/de_fuzz/corpus/2da5784197bc8166de0b9882fc9c34773913388d
new file mode 100644
index 00000000..321cd73f
Binary files /dev/null and b/test/de_fuzz/corpus/2da5784197bc8166de0b9882fc9c34773913388d differ
diff --git a/test/de_fuzz/corpus/2dab499eaeb3f18990490311157acd8eebc02d1e b/test/de_fuzz/corpus/2dab499eaeb3f18990490311157acd8eebc02d1e
new file mode 100644
index 00000000..53d26e11
Binary files /dev/null and b/test/de_fuzz/corpus/2dab499eaeb3f18990490311157acd8eebc02d1e differ
diff --git a/test/de_fuzz/corpus/2daf307e2bea3348b9df6e344660e258e247cc2a b/test/de_fuzz/corpus/2daf307e2bea3348b9df6e344660e258e247cc2a
new file mode 100644
index 00000000..9b2fa84f
Binary files /dev/null and b/test/de_fuzz/corpus/2daf307e2bea3348b9df6e344660e258e247cc2a differ
diff --git a/test/de_fuzz/corpus/2dc0debd23ac9491af3c9b39e6af2e3bb28fd310 b/test/de_fuzz/corpus/2dc0debd23ac9491af3c9b39e6af2e3bb28fd310
new file mode 100644
index 00000000..0f4ead1a
Binary files /dev/null and b/test/de_fuzz/corpus/2dc0debd23ac9491af3c9b39e6af2e3bb28fd310 differ
diff --git a/test/de_fuzz/corpus/2dc3c0bbcc220f18bed9db9dc645106409e0a4e3 b/test/de_fuzz/corpus/2dc3c0bbcc220f18bed9db9dc645106409e0a4e3
new file mode 100644
index 00000000..f4533db2
Binary files /dev/null and b/test/de_fuzz/corpus/2dc3c0bbcc220f18bed9db9dc645106409e0a4e3 differ
diff --git a/test/de_fuzz/corpus/2e32204ea37e89b50e0eac767c28d918a7d58e53 b/test/de_fuzz/corpus/2e32204ea37e89b50e0eac767c28d918a7d58e53
new file mode 100644
index 00000000..7d1e5624
Binary files /dev/null and b/test/de_fuzz/corpus/2e32204ea37e89b50e0eac767c28d918a7d58e53 differ
diff --git a/test/de_fuzz/corpus/2e779ef8fdcde230b987e7c4ce7da5fbd1c096d4 b/test/de_fuzz/corpus/2e779ef8fdcde230b987e7c4ce7da5fbd1c096d4
new file mode 100644
index 00000000..edf6c70a
Binary files /dev/null and b/test/de_fuzz/corpus/2e779ef8fdcde230b987e7c4ce7da5fbd1c096d4 differ
diff --git a/test/de_fuzz/corpus/2e87a0130d6be64854c23866109f98644ad84c98 b/test/de_fuzz/corpus/2e87a0130d6be64854c23866109f98644ad84c98
new file mode 100644
index 00000000..29c2d2ea
Binary files /dev/null and b/test/de_fuzz/corpus/2e87a0130d6be64854c23866109f98644ad84c98 differ
diff --git a/test/de_fuzz/corpus/2ea09fca9bcfe3d10cf18dcf4bb419db654d6dc9 b/test/de_fuzz/corpus/2ea09fca9bcfe3d10cf18dcf4bb419db654d6dc9
new file mode 100644
index 00000000..2102e96a
Binary files /dev/null and b/test/de_fuzz/corpus/2ea09fca9bcfe3d10cf18dcf4bb419db654d6dc9 differ
diff --git a/test/de_fuzz/corpus/2eabe75406f9b64b07ae0600dad87a3c38292121 b/test/de_fuzz/corpus/2eabe75406f9b64b07ae0600dad87a3c38292121
new file mode 100644
index 00000000..f47dfb91
--- /dev/null
+++ b/test/de_fuzz/corpus/2eabe75406f9b64b07ae0600dad87a3c38292121
@@ -0,0 +1,128 @@
+'è (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* # optional leading comment
+(?: (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+) # initial word
+(?: (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] [| \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] itial subdomain
+(?: #
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. # if led by a period...
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # ...further okay
+)*
+(?: (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\ø80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* , (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* @ (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # initial subdomain
+(?: #
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. # if led by a period...
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # ...further okay
+)*
+)* # further okay, if led by comma
+: # closing colon
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* )? # optional route
+(?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped som¦thing (something != CR)
+)* " # closing quote
+) # initial word
+(?: (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+) )* # further okay, if led by a period
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* @ (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \¥( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # initial subdomain
+(?: #
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. # if led by a period...
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # ...further okay
+)*
+# address spec
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* > # trailing >
+# name and address
+) (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW # optional trailing comment
+
+
\ No newline at end of file
diff --git a/test/de_fuzz/corpus/2eba446d08451e812bcf6487d3b5ffe3a73537ba b/test/de_fuzz/corpus/2eba446d08451e812bcf6487d3b5ffe3a73537ba
new file mode 100644
index 00000000..aafae18b
Binary files /dev/null and b/test/de_fuzz/corpus/2eba446d08451e812bcf6487d3b5ffe3a73537ba differ
diff --git a/test/de_fuzz/corpus/2ebd443faf3a24685a7e3d925f9392298a28df4f b/test/de_fuzz/corpus/2ebd443faf3a24685a7e3d925f9392298a28df4f
new file mode 100644
index 00000000..8f9e5078
Binary files /dev/null and b/test/de_fuzz/corpus/2ebd443faf3a24685a7e3d925f9392298a28df4f differ
diff --git a/test/de_fuzz/corpus/2ef0816a12e0a271e43d7050dff6361c792c8280 b/test/de_fuzz/corpus/2ef0816a12e0a271e43d7050dff6361c792c8280
new file mode 100644
index 00000000..074e6dde
Binary files /dev/null and b/test/de_fuzz/corpus/2ef0816a12e0a271e43d7050dff6361c792c8280 differ
diff --git a/test/de_fuzz/corpus/2f32804a2c745d33ac3402075b1a8c671ed3a905 b/test/de_fuzz/corpus/2f32804a2c745d33ac3402075b1a8c671ed3a905
new file mode 100644
index 00000000..c38d309b
Binary files /dev/null and b/test/de_fuzz/corpus/2f32804a2c745d33ac3402075b1a8c671ed3a905 differ
diff --git a/test/de_fuzz/corpus/2f6f0ab07bf175a4579116de5434d8c643182568 b/test/de_fuzz/corpus/2f6f0ab07bf175a4579116de5434d8c643182568
new file mode 100644
index 00000000..b0716d9a
Binary files /dev/null and b/test/de_fuzz/corpus/2f6f0ab07bf175a4579116de5434d8c643182568 differ
diff --git a/test/de_fuzz/corpus/2f848167c41e669c9d55fa2fdca18058890a7464 b/test/de_fuzz/corpus/2f848167c41e669c9d55fa2fdca18058890a7464
new file mode 100644
index 00000000..a164c82b
Binary files /dev/null and b/test/de_fuzz/corpus/2f848167c41e669c9d55fa2fdca18058890a7464 differ
diff --git a/test/de_fuzz/corpus/2fa97a379526336e85bbfb8dc81ac4e11323c712 b/test/de_fuzz/corpus/2fa97a379526336e85bbfb8dc81ac4e11323c712
new file mode 100644
index 00000000..c39ac3a5
Binary files /dev/null and b/test/de_fuzz/corpus/2fa97a379526336e85bbfb8dc81ac4e11323c712 differ
diff --git a/test/de_fuzz/corpus/2fab7c8b881ec315f761074649a8fb712b3dc8a9 b/test/de_fuzz/corpus/2fab7c8b881ec315f761074649a8fb712b3dc8a9
new file mode 100644
index 00000000..392d2b0f
Binary files /dev/null and b/test/de_fuzz/corpus/2fab7c8b881ec315f761074649a8fb712b3dc8a9 differ
diff --git a/test/de_fuzz/corpus/2fc4bb099f9f27d630f8e842d76a9e6ae7f9b1bd b/test/de_fuzz/corpus/2fc4bb099f9f27d630f8e842d76a9e6ae7f9b1bd
new file mode 100644
index 00000000..1fc5ff5b
Binary files /dev/null and b/test/de_fuzz/corpus/2fc4bb099f9f27d630f8e842d76a9e6ae7f9b1bd differ
diff --git a/test/de_fuzz/corpus/2fe4f9cdc7382c86158e14084ff4763d70a60d4c b/test/de_fuzz/corpus/2fe4f9cdc7382c86158e14084ff4763d70a60d4c
new file mode 100644
index 00000000..c7efa0f2
Binary files /dev/null and b/test/de_fuzz/corpus/2fe4f9cdc7382c86158e14084ff4763d70a60d4c differ
diff --git a/test/de_fuzz/corpus/2fe666a3d735bf271be5cecb3c0e9237b0c4bf7f b/test/de_fuzz/corpus/2fe666a3d735bf271be5cecb3c0e9237b0c4bf7f
new file mode 100644
index 00000000..9c7f1a9f
Binary files /dev/null and b/test/de_fuzz/corpus/2fe666a3d735bf271be5cecb3c0e9237b0c4bf7f differ
diff --git a/test/de_fuzz/corpus/2fedb1d9994c9831f54184079117cd4e0637f6e0 b/test/de_fuzz/corpus/2fedb1d9994c9831f54184079117cd4e0637f6e0
new file mode 100644
index 00000000..8a2067b3
Binary files /dev/null and b/test/de_fuzz/corpus/2fedb1d9994c9831f54184079117cd4e0637f6e0 differ
diff --git a/test/de_fuzz/corpus/300aa6914fd9155e4ce3632021bb7426b5fae6ba b/test/de_fuzz/corpus/300aa6914fd9155e4ce3632021bb7426b5fae6ba
new file mode 100644
index 00000000..9b874426
Binary files /dev/null and b/test/de_fuzz/corpus/300aa6914fd9155e4ce3632021bb7426b5fae6ba differ
diff --git a/test/de_fuzz/corpus/301e5e7706324ea4896e12c0fc9166a285403eea b/test/de_fuzz/corpus/301e5e7706324ea4896e12c0fc9166a285403eea
new file mode 100644
index 00000000..363b1c93
Binary files /dev/null and b/test/de_fuzz/corpus/301e5e7706324ea4896e12c0fc9166a285403eea differ
diff --git a/test/de_fuzz/corpus/303a71478c2627c4dc74f71ec3034599dda58cb9 b/test/de_fuzz/corpus/303a71478c2627c4dc74f71ec3034599dda58cb9
new file mode 100644
index 00000000..908cf932
Binary files /dev/null and b/test/de_fuzz/corpus/303a71478c2627c4dc74f71ec3034599dda58cb9 differ
diff --git a/test/de_fuzz/corpus/3050bf6a959f35c66601f46c1752f76672c80bcb b/test/de_fuzz/corpus/3050bf6a959f35c66601f46c1752f76672c80bcb
new file mode 100644
index 00000000..4126e6cd
Binary files /dev/null and b/test/de_fuzz/corpus/3050bf6a959f35c66601f46c1752f76672c80bcb differ
diff --git a/test/de_fuzz/corpus/30616e91d9fb93b68a5175c5f847ed2122601253 b/test/de_fuzz/corpus/30616e91d9fb93b68a5175c5f847ed2122601253
new file mode 100644
index 00000000..2806c68e
Binary files /dev/null and b/test/de_fuzz/corpus/30616e91d9fb93b68a5175c5f847ed2122601253 differ
diff --git a/test/de_fuzz/corpus/3085c7b6b714f6c0328159a9edb586df5b9b2393 b/test/de_fuzz/corpus/3085c7b6b714f6c0328159a9edb586df5b9b2393
new file mode 100644
index 00000000..b3de0d1b
Binary files /dev/null and b/test/de_fuzz/corpus/3085c7b6b714f6c0328159a9edb586df5b9b2393 differ
diff --git a/test/de_fuzz/corpus/309268a39f19ac4ef91a8890ae43177c11670cc2 b/test/de_fuzz/corpus/309268a39f19ac4ef91a8890ae43177c11670cc2
new file mode 100644
index 00000000..b470b8eb
Binary files /dev/null and b/test/de_fuzz/corpus/309268a39f19ac4ef91a8890ae43177c11670cc2 differ
diff --git a/test/de_fuzz/corpus/309d9f79b5f15047c19966931d6fd06644016087 b/test/de_fuzz/corpus/309d9f79b5f15047c19966931d6fd06644016087
new file mode 100644
index 00000000..ce58b80b
Binary files /dev/null and b/test/de_fuzz/corpus/309d9f79b5f15047c19966931d6fd06644016087 differ
diff --git a/test/de_fuzz/corpus/30ba862917aedbbc1a50729696cdce1a6d06f69a b/test/de_fuzz/corpus/30ba862917aedbbc1a50729696cdce1a6d06f69a
new file mode 100644
index 00000000..c336a01b
Binary files /dev/null and b/test/de_fuzz/corpus/30ba862917aedbbc1a50729696cdce1a6d06f69a differ
diff --git a/test/de_fuzz/corpus/30c56e6b21a6e6079fa110d2048a170586e5ec84 b/test/de_fuzz/corpus/30c56e6b21a6e6079fa110d2048a170586e5ec84
new file mode 100644
index 00000000..ab9a18bf
Binary files /dev/null and b/test/de_fuzz/corpus/30c56e6b21a6e6079fa110d2048a170586e5ec84 differ
diff --git a/test/de_fuzz/corpus/30d55da87f662bd7213986482c20cc01c4e0ce09 b/test/de_fuzz/corpus/30d55da87f662bd7213986482c20cc01c4e0ce09
new file mode 100644
index 00000000..e7e64fe3
Binary files /dev/null and b/test/de_fuzz/corpus/30d55da87f662bd7213986482c20cc01c4e0ce09 differ
diff --git a/test/de_fuzz/corpus/30d774d4a77dc8f4797129d157878001603062bf b/test/de_fuzz/corpus/30d774d4a77dc8f4797129d157878001603062bf
new file mode 100644
index 00000000..1202bfc8
Binary files /dev/null and b/test/de_fuzz/corpus/30d774d4a77dc8f4797129d157878001603062bf differ
diff --git a/test/de_fuzz/corpus/30dbd9ba8ae48883e4cc1240c59f3529fe694098 b/test/de_fuzz/corpus/30dbd9ba8ae48883e4cc1240c59f3529fe694098
new file mode 100644
index 00000000..9a5114de
Binary files /dev/null and b/test/de_fuzz/corpus/30dbd9ba8ae48883e4cc1240c59f3529fe694098 differ
diff --git a/test/de_fuzz/corpus/30dfb9c0f2c58e8b3e3ac23169930ebdf1117cb9 b/test/de_fuzz/corpus/30dfb9c0f2c58e8b3e3ac23169930ebdf1117cb9
new file mode 100644
index 00000000..96a5d24d
Binary files /dev/null and b/test/de_fuzz/corpus/30dfb9c0f2c58e8b3e3ac23169930ebdf1117cb9 differ
diff --git a/test/de_fuzz/corpus/30f337f6a96006262f0f79ec112523851d3654b1 b/test/de_fuzz/corpus/30f337f6a96006262f0f79ec112523851d3654b1
new file mode 100644
index 00000000..4bfc61f6
--- /dev/null
+++ b/test/de_fuzz/corpus/30f337f6a96006262f0f79ec112523851d3654b1
@@ -0,0 +1 @@
+Z(((((((a+)+)+)+)+)+)+)+|Y(((((((a+)+)+)+)+)+)+)+|X((((()+)+)+|X(((((((a+)+)+)+)+)+)+)+(|W((((((a+)+)++)+)i+)+)+|V(((((((a+)|Y(((((((a+)+)+)+)+)+)+)+|X((((()+)+)+|X(((((((a+)+)+)+)+)+)+)+(|W((((((a+)+)++)+)i+)+)+|V(((((((a+)+)+!\Pd4((a+)+)+)+)+)+)+)+(|W((((((a+)+)++)+)i+)+)+|V(((((((a+)+)+!\Pd2(a+)+)+)+)+)+)++)+!\Pd2((a+)+)+)+)+)+)+)+(|W((((((a+)+)++)+)i+)+)+|V(((((((a+)+)+!\Pd2(a+)+)((((()+)+)+|X(((((((a+)+)+)+)+)+)+)+(|W((((((a+)+)++)+)i+)+)+|V(((((((a+)|Y(((((((a+)+)+)+)+)+)+)+|X((((()+)+)+|X(((((((a+)+)+)+)+)+)+)+(|W((((((a+)+)++)+)i+)+)+|V(((((((a+)+)+!\Pd4((a+)+)+)+)+)+)+)+(|W((((((a+)+)++)+)i+)+)+|V(((((((a+)+)+!\Pd2(a+)+)+)+)+)+)+)+)+)+)+)+|(a+)+bc(((((a+)+)+)+)+)+)+)+(|W((((((a+)+)++)+)i+)+)+|V(((((((a+)|Y(((((((a+)+)+)+)+)+)+)+|X((((()+)+)+|X(((((((a+)+)+)+)+)+)+)+(|W((((((a+)+)++)+)i+)+)+|V(((((((a+)+)+!\Pd4((a+)+)+)+)+)+)+)+(|W((((((a+)+)++)+)i+)+)+|V(((((((a+)+)+!\Pd2(a+)+)+)+)+)+)++)+!\Pd2((a+)+)+)+)+)+)+)+(|W((((((a+)+)++)+)i+)+)+|V(((((((a+)+)+!\Pd2(a+)+)((((()+)+)+|X(((((((a+)+)+)+)+)+)+)+(|W((((((a+)+)++)+)i+)+)+|V(((((((a+)|Y(((((((a+)+)+)+)+)+)+)+|X((((()+)+)+|X(((((((a+)+)+)+)+)+)+)+(|W((((((a+)+)++)+)i+)+)+|V(((((((a+)+)+!\Pd4((a+)+)+)+)+)+)+)+
\ No newline at end of file
diff --git a/test/de_fuzz/corpus/311e2ff095cb34bddced3267e2c3590a734d1152 b/test/de_fuzz/corpus/311e2ff095cb34bddced3267e2c3590a734d1152
new file mode 100644
index 00000000..b516e408
Binary files /dev/null and b/test/de_fuzz/corpus/311e2ff095cb34bddced3267e2c3590a734d1152 differ
diff --git a/test/de_fuzz/corpus/31204f2a680b62e136f7d97ac7c8628be844d434 b/test/de_fuzz/corpus/31204f2a680b62e136f7d97ac7c8628be844d434
new file mode 100644
index 00000000..b61fd397
Binary files /dev/null and b/test/de_fuzz/corpus/31204f2a680b62e136f7d97ac7c8628be844d434 differ
diff --git a/test/de_fuzz/corpus/314387a416ba9335bf5d947a8d18d2d2889bd503 b/test/de_fuzz/corpus/314387a416ba9335bf5d947a8d18d2d2889bd503
new file mode 100644
index 00000000..1c524a48
Binary files /dev/null and b/test/de_fuzz/corpus/314387a416ba9335bf5d947a8d18d2d2889bd503 differ
diff --git a/test/de_fuzz/corpus/316fea99e186490d7df4c22092c51c5d8a1341fa b/test/de_fuzz/corpus/316fea99e186490d7df4c22092c51c5d8a1341fa
new file mode 100644
index 00000000..8072f998
Binary files /dev/null and b/test/de_fuzz/corpus/316fea99e186490d7df4c22092c51c5d8a1341fa differ
diff --git a/test/de_fuzz/corpus/31b67717fd80cc50fd1e43d81fff94c1b74e8769 b/test/de_fuzz/corpus/31b67717fd80cc50fd1e43d81fff94c1b74e8769
new file mode 100644
index 00000000..16cc6a55
Binary files /dev/null and b/test/de_fuzz/corpus/31b67717fd80cc50fd1e43d81fff94c1b74e8769 differ
diff --git a/test/de_fuzz/corpus/31db6886cabc30e601b2b5b762cfc84336faaa0d b/test/de_fuzz/corpus/31db6886cabc30e601b2b5b762cfc84336faaa0d
new file mode 100644
index 00000000..21962b00
Binary files /dev/null and b/test/de_fuzz/corpus/31db6886cabc30e601b2b5b762cfc84336faaa0d differ
diff --git a/test/de_fuzz/corpus/31e7a414696fa8c91bb174458e8d06ea401580b0 b/test/de_fuzz/corpus/31e7a414696fa8c91bb174458e8d06ea401580b0
new file mode 100644
index 00000000..90ffcf05
Binary files /dev/null and b/test/de_fuzz/corpus/31e7a414696fa8c91bb174458e8d06ea401580b0 differ
diff --git a/test/de_fuzz/corpus/323134a64103927c6ff9ab263af61e7d64c4d960 b/test/de_fuzz/corpus/323134a64103927c6ff9ab263af61e7d64c4d960
new file mode 100644
index 00000000..9d6f88af
Binary files /dev/null and b/test/de_fuzz/corpus/323134a64103927c6ff9ab263af61e7d64c4d960 differ
diff --git a/test/de_fuzz/corpus/324887a0fe47b74d8dc2474294962d6cdd0fc8d3 b/test/de_fuzz/corpus/324887a0fe47b74d8dc2474294962d6cdd0fc8d3
new file mode 100644
index 00000000..54ab3954
Binary files /dev/null and b/test/de_fuzz/corpus/324887a0fe47b74d8dc2474294962d6cdd0fc8d3 differ
diff --git a/test/de_fuzz/corpus/329459a6d86c879ab3faf20414cc99e6ad652494 b/test/de_fuzz/corpus/329459a6d86c879ab3faf20414cc99e6ad652494
new file mode 100644
index 00000000..0228332d
Binary files /dev/null and b/test/de_fuzz/corpus/329459a6d86c879ab3faf20414cc99e6ad652494 differ
diff --git a/test/de_fuzz/corpus/32d0914b49d024005826c16667638f56270d76fb b/test/de_fuzz/corpus/32d0914b49d024005826c16667638f56270d76fb
new file mode 100644
index 00000000..995214ae
Binary files /dev/null and b/test/de_fuzz/corpus/32d0914b49d024005826c16667638f56270d76fb differ
diff --git a/test/de_fuzz/corpus/334d51b50f2cf49915f70416eb717eab10618bf9 b/test/de_fuzz/corpus/334d51b50f2cf49915f70416eb717eab10618bf9
new file mode 100644
index 00000000..875e9698
Binary files /dev/null and b/test/de_fuzz/corpus/334d51b50f2cf49915f70416eb717eab10618bf9 differ
diff --git a/test/de_fuzz/corpus/33525513b5864f3dbeea2a793580856bce100030 b/test/de_fuzz/corpus/33525513b5864f3dbeea2a793580856bce100030
new file mode 100644
index 00000000..eb005059
Binary files /dev/null and b/test/de_fuzz/corpus/33525513b5864f3dbeea2a793580856bce100030 differ
diff --git a/test/de_fuzz/corpus/336195bbe4224d9e0cd0f8c3e9f1987d87440d0a b/test/de_fuzz/corpus/336195bbe4224d9e0cd0f8c3e9f1987d87440d0a
new file mode 100644
index 00000000..a20cf543
Binary files /dev/null and b/test/de_fuzz/corpus/336195bbe4224d9e0cd0f8c3e9f1987d87440d0a differ
diff --git a/test/de_fuzz/corpus/337fd61aca6cd02479de11cdeacf2cf05e09943d b/test/de_fuzz/corpus/337fd61aca6cd02479de11cdeacf2cf05e09943d
new file mode 100644
index 00000000..24dcff19
Binary files /dev/null and b/test/de_fuzz/corpus/337fd61aca6cd02479de11cdeacf2cf05e09943d differ
diff --git a/test/de_fuzz/corpus/33bc6343db91a9b25d695772c4f1713a6724be68 b/test/de_fuzz/corpus/33bc6343db91a9b25d695772c4f1713a6724be68
new file mode 100644
index 00000000..dd372e53
Binary files /dev/null and b/test/de_fuzz/corpus/33bc6343db91a9b25d695772c4f1713a6724be68 differ
diff --git a/test/de_fuzz/corpus/3429493b0ba09863482a4b4b5f7c8b0ada78ba0f b/test/de_fuzz/corpus/3429493b0ba09863482a4b4b5f7c8b0ada78ba0f
new file mode 100644
index 00000000..a3b62d9e
Binary files /dev/null and b/test/de_fuzz/corpus/3429493b0ba09863482a4b4b5f7c8b0ada78ba0f differ
diff --git a/test/de_fuzz/corpus/3436eb95313abd960c0fb24c777cf3c57d884a4f b/test/de_fuzz/corpus/3436eb95313abd960c0fb24c777cf3c57d884a4f
new file mode 100644
index 00000000..8beb923c
Binary files /dev/null and b/test/de_fuzz/corpus/3436eb95313abd960c0fb24c777cf3c57d884a4f differ
diff --git a/test/de_fuzz/corpus/34398f8e24197708c1d3aa8cc7a49740d7e83c2c b/test/de_fuzz/corpus/34398f8e24197708c1d3aa8cc7a49740d7e83c2c
new file mode 100644
index 00000000..5279c300
Binary files /dev/null and b/test/de_fuzz/corpus/34398f8e24197708c1d3aa8cc7a49740d7e83c2c differ
diff --git a/test/de_fuzz/corpus/345083d5e283d2ae65245e09b6b25fdc11a11ac4 b/test/de_fuzz/corpus/345083d5e283d2ae65245e09b6b25fdc11a11ac4
new file mode 100644
index 00000000..a7eaf196
Binary files /dev/null and b/test/de_fuzz/corpus/345083d5e283d2ae65245e09b6b25fdc11a11ac4 differ
diff --git a/test/de_fuzz/corpus/3470eee8e6a5079df848ea02076072409b578718 b/test/de_fuzz/corpus/3470eee8e6a5079df848ea02076072409b578718
new file mode 100644
index 00000000..7e32d593
--- /dev/null
+++ b/test/de_fuzz/corpus/3470eee8e6a5079df848ea02076072409b578718
@@ -0,0 +1 @@
+Z(((((((a+)+)+)+)+)+)+š+|Y(((((((a+)+)+)+)+)+)+)+|X((((((((((((a+)+)+)+)+)+)+š+|Y(((((((a+)+)+)+)+)+)+)+|X(((((((a+)+)+)+)+)+)+)+|W(((((((a+)+)+)+)+)+)+)+;(V((()+)+|Y(((Ø××מÔÖÏ)+)+)+)+)+)+|X(((((((a+)+)+)+)+)+)+)+|W(((((((a+)+)+)+)+)+)+)+;|V(((((((a+)+)+)+)+)+)+)+|CZ(((((((a+)+)+)+)+)+)+)+|CY(((((((a+)+)+)+)+)+)+)+|CX(((((((a+)+)+)+)+)+)Ò)+|CW(((((((a+)+)+)+((((a+)+)+)+)+)+)+)+|CZ(((((((a+)+)+)+)+)+)+)+|CY(((((((a+)+)+)+)+)+)+)+|CX(((((((a+)+)+)+)+)+)+)+|CW(((((((a+)+)+)+)+)+)!+)+|CV,((((((a+)+)+)+)+)+)((a+)+)+)+)+)+)+)+|W(((((((a+)+)+)+)+)+)+)+;(V((()+)+|Y(((Ø××מÔÖÏ)+)+)+)+)+)+|X(((((((a+)+)+)+)+)+)+)+|W(((((((a+)+)+)+)+)+)+)+;|V(((((((a+)+)+)+)+)+)+)+|CZ(((((((a+)+)+)+)+)+)+)+|CY(((((((a+)+)+)+)+)+)+)+|CX(((((((a+)+)+)+)+)+)Ò)+|CW(((((((a+)+)+)+((((a+)+)+)+)+)+)+)+|LZ(((((((a+)+)+)+)+)+)+)+|CY(((((((a+)+)+)+)+)+)+)+|CX(((((((a+)+)+)+)+)+)+)+|C*+((((((a+)+)+)+)+)+)+)+|CV,((((((a+)+)+)+)+)+)+)+|(a+)+bc
\ No newline at end of file
diff --git a/test/de_fuzz/corpus/34a97eda281ac659d8cfa99fefe2b34a07c71b8b b/test/de_fuzz/corpus/34a97eda281ac659d8cfa99fefe2b34a07c71b8b
new file mode 100644
index 00000000..88271723
Binary files /dev/null and b/test/de_fuzz/corpus/34a97eda281ac659d8cfa99fefe2b34a07c71b8b differ
diff --git a/test/de_fuzz/corpus/34e32233077080d830e2fd283d6101970feb2f09 b/test/de_fuzz/corpus/34e32233077080d830e2fd283d6101970feb2f09
new file mode 100644
index 00000000..970329c5
Binary files /dev/null and b/test/de_fuzz/corpus/34e32233077080d830e2fd283d6101970feb2f09 differ
diff --git a/test/de_fuzz/corpus/34f88545d98f57edb15c4091e63078d1635164dd b/test/de_fuzz/corpus/34f88545d98f57edb15c4091e63078d1635164dd
new file mode 100644
index 00000000..0bb519c6
Binary files /dev/null and b/test/de_fuzz/corpus/34f88545d98f57edb15c4091e63078d1635164dd differ
diff --git a/test/de_fuzz/corpus/356497bbb0c715cee5b370c73dffb4315e49b13e b/test/de_fuzz/corpus/356497bbb0c715cee5b370c73dffb4315e49b13e
new file mode 100644
index 00000000..18c38303
Binary files /dev/null and b/test/de_fuzz/corpus/356497bbb0c715cee5b370c73dffb4315e49b13e differ
diff --git a/test/de_fuzz/corpus/35b2ef4a8b584ea73300f524ac882e02bc2036e7 b/test/de_fuzz/corpus/35b2ef4a8b584ea73300f524ac882e02bc2036e7
new file mode 100644
index 00000000..ea989bf7
Binary files /dev/null and b/test/de_fuzz/corpus/35b2ef4a8b584ea73300f524ac882e02bc2036e7 differ
diff --git a/test/de_fuzz/corpus/35d4d3ec978066884fc72483fcc67e8353343159 b/test/de_fuzz/corpus/35d4d3ec978066884fc72483fcc67e8353343159
new file mode 100644
index 00000000..de958f41
--- /dev/null
+++ b/test/de_fuzz/corpus/35d4d3ec978066884fc72483fcc67e8353343159
@@ -0,0 +1,190 @@
+'è (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* # optional leading comment
+(?: (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+) # initial word
+(?: (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] itial subdomain
+(?: #
+(?: [\040\t] | | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. # if led by a period...
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,);:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # ...further okay
+)*
+(?: (?: [\041\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* , (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ial subdomain
+(?: #
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. # if led by a period...
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # ...further okay
+)*
+)* # further okay, if led by comma
+: # closing colon
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* )? # optional route
+(?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+) # initial word
+(?: (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atfm
+|
+"ept backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+) # initial word
+(?: (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] itial subdomain
+(?: #
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. # if led by a period...
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # ...further okay
+)*
+(?: (?: [\041\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* , (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ial subdomain
+(?: #
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. # if led by a period...
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # ...further okay
+)*
+)* # further okay, if led by comma
+: # closing colon
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* )? # optional route
+(?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+) # initial word
+(?: (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x60-\xff] # Escaped something (something != CR)
+)* " # closing quote
+) )* # further okay, if led by a period
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* @ (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # initial subdomain
+(?: #
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. # if led by a period...
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # ...further okay
+)*
+# address spec
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* > # trailing >
+# name and address
+) (?: [\039\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* # optional trailing comment
+
+
\ No newline at end of file
diff --git a/test/de_fuzz/corpus/35df1835ba75dbaa10b52a852a759494246594c4 b/test/de_fuzz/corpus/35df1835ba75dbaa10b52a852a759494246594c4
new file mode 100644
index 00000000..d93d2486
Binary files /dev/null and b/test/de_fuzz/corpus/35df1835ba75dbaa10b52a852a759494246594c4 differ
diff --git a/test/de_fuzz/corpus/36064f8fb54bb80d6fac323192439968c996b6d1 b/test/de_fuzz/corpus/36064f8fb54bb80d6fac323192439968c996b6d1
new file mode 100644
index 00000000..4a97ffe5
Binary files /dev/null and b/test/de_fuzz/corpus/36064f8fb54bb80d6fac323192439968c996b6d1 differ
diff --git a/test/de_fuzz/corpus/36189d916a7beb41d78780d46c2a6e6c136c8b3a b/test/de_fuzz/corpus/36189d916a7beb41d78780d46c2a6e6c136c8b3a
new file mode 100644
index 00000000..ab45f3ff
Binary files /dev/null and b/test/de_fuzz/corpus/36189d916a7beb41d78780d46c2a6e6c136c8b3a differ
diff --git a/test/de_fuzz/corpus/363c08ea2142f9f683ad7e7b966039ab68f5529f b/test/de_fuzz/corpus/363c08ea2142f9f683ad7e7b966039ab68f5529f
new file mode 100644
index 00000000..f66d562e
Binary files /dev/null and b/test/de_fuzz/corpus/363c08ea2142f9f683ad7e7b966039ab68f5529f differ
diff --git a/test/de_fuzz/corpus/365429ea82136a2cb82dc4ee50f0e65550e96210 b/test/de_fuzz/corpus/365429ea82136a2cb82dc4ee50f0e65550e96210
new file mode 100644
index 00000000..eec35486
Binary files /dev/null and b/test/de_fuzz/corpus/365429ea82136a2cb82dc4ee50f0e65550e96210 differ
diff --git a/test/de_fuzz/corpus/36659457f9890b9ff38329b62e5f7b1c936d4fe2 b/test/de_fuzz/corpus/36659457f9890b9ff38329b62e5f7b1c936d4fe2
new file mode 100644
index 00000000..7686c487
Binary files /dev/null and b/test/de_fuzz/corpus/36659457f9890b9ff38329b62e5f7b1c936d4fe2 differ
diff --git a/test/de_fuzz/corpus/367269c24711f53b362bbb7b400715b8eca86f39 b/test/de_fuzz/corpus/367269c24711f53b362bbb7b400715b8eca86f39
new file mode 100644
index 00000000..0e094930
Binary files /dev/null and b/test/de_fuzz/corpus/367269c24711f53b362bbb7b400715b8eca86f39 differ
diff --git a/test/de_fuzz/corpus/367677923709eab0afcccd10d1fa4df53c5eba51 b/test/de_fuzz/corpus/367677923709eab0afcccd10d1fa4df53c5eba51
new file mode 100644
index 00000000..05f36119
Binary files /dev/null and b/test/de_fuzz/corpus/367677923709eab0afcccd10d1fa4df53c5eba51 differ
diff --git a/test/de_fuzz/corpus/369da6d1e10f8b8b0aaab221bece6c1fb8c78b25 b/test/de_fuzz/corpus/369da6d1e10f8b8b0aaab221bece6c1fb8c78b25
new file mode 100644
index 00000000..484920cf
--- /dev/null
+++ b/test/de_fuzz/corpus/369da6d1e10f8b8b0aaab221bece6c1fb8c78b25
@@ -0,0 +1 @@
+@J\b:(?:(one)|(tone)|()(?(3)|!))(?(2)|wo(|(three))(?:,|\b)){3,}(?(1)|(?!))(?(2)|(?!))(?(3)|(?!))one,three,(?:(?:(one)|(tone)|()(?(3)|!))(?(2)|wo(|(three|(tone)|()(?(3)|!))(?(2)|wo(|(three))(?:,|\b)){3,}(?(1)|(?!))(?(2)|(?!))(?(3)|(?!))one,three,(?:(?:(one)|(tone)|()(?(3)|!))(?(2)|wo(|(three))(¿:,|\b)){3,}(?(1)|(?!))(?(2)|(?!))(?(3)|(?!))one,three,two))(¿:,|\b)){3,}(?(1)|(?!))(?(2)|(?!))(?(3)|(?!))one,three,two
\ No newline at end of file
diff --git a/test/de_fuzz/corpus/36aaa179d45b4c9d1a50515c3ce8c52049878090 b/test/de_fuzz/corpus/36aaa179d45b4c9d1a50515c3ce8c52049878090
new file mode 100644
index 00000000..7988629a
Binary files /dev/null and b/test/de_fuzz/corpus/36aaa179d45b4c9d1a50515c3ce8c52049878090 differ
diff --git a/test/de_fuzz/corpus/36b22cb644b9fab80ece631bd3dd739e24fe8a5e b/test/de_fuzz/corpus/36b22cb644b9fab80ece631bd3dd739e24fe8a5e
new file mode 100644
index 00000000..820a5dbd
Binary files /dev/null and b/test/de_fuzz/corpus/36b22cb644b9fab80ece631bd3dd739e24fe8a5e differ
diff --git a/test/de_fuzz/corpus/36bee362422a0c3b551d7ab12f70c83097d43be8 b/test/de_fuzz/corpus/36bee362422a0c3b551d7ab12f70c83097d43be8
new file mode 100644
index 00000000..37876138
Binary files /dev/null and b/test/de_fuzz/corpus/36bee362422a0c3b551d7ab12f70c83097d43be8 differ
diff --git a/test/de_fuzz/corpus/36bfd11af4a50f85539bfb575a7c4ac2c67d1856 b/test/de_fuzz/corpus/36bfd11af4a50f85539bfb575a7c4ac2c67d1856
new file mode 100644
index 00000000..a9e0b11b
Binary files /dev/null and b/test/de_fuzz/corpus/36bfd11af4a50f85539bfb575a7c4ac2c67d1856 differ
diff --git a/test/de_fuzz/corpus/36eb9ce5c01b803d369fc9f447b8b3f6cfda5b23 b/test/de_fuzz/corpus/36eb9ce5c01b803d369fc9f447b8b3f6cfda5b23
new file mode 100644
index 00000000..00bf18fe
Binary files /dev/null and b/test/de_fuzz/corpus/36eb9ce5c01b803d369fc9f447b8b3f6cfda5b23 differ
diff --git a/test/de_fuzz/corpus/36fc58d4d36e590863ef22a72651f31bc51cbe1f b/test/de_fuzz/corpus/36fc58d4d36e590863ef22a72651f31bc51cbe1f
new file mode 100644
index 00000000..7bee1f53
Binary files /dev/null and b/test/de_fuzz/corpus/36fc58d4d36e590863ef22a72651f31bc51cbe1f differ
diff --git a/test/de_fuzz/corpus/37137126b378e7b7f44aa768070ea82b29be86b5 b/test/de_fuzz/corpus/37137126b378e7b7f44aa768070ea82b29be86b5
new file mode 100644
index 00000000..6da590df
Binary files /dev/null and b/test/de_fuzz/corpus/37137126b378e7b7f44aa768070ea82b29be86b5 differ
diff --git a/test/de_fuzz/corpus/3723ee36a113feda659b512d62517a91157e169c b/test/de_fuzz/corpus/3723ee36a113feda659b512d62517a91157e169c
new file mode 100644
index 00000000..8805127d
Binary files /dev/null and b/test/de_fuzz/corpus/3723ee36a113feda659b512d62517a91157e169c differ
diff --git a/test/de_fuzz/corpus/37251860fe6754ade18cdf4b36498fcce95ed798 b/test/de_fuzz/corpus/37251860fe6754ade18cdf4b36498fcce95ed798
new file mode 100644
index 00000000..bfe2ae0f
Binary files /dev/null and b/test/de_fuzz/corpus/37251860fe6754ade18cdf4b36498fcce95ed798 differ
diff --git a/test/de_fuzz/corpus/372af6310cc8fae4f3cac496c1efcb090a604b4b b/test/de_fuzz/corpus/372af6310cc8fae4f3cac496c1efcb090a604b4b
new file mode 100644
index 00000000..4183f699
Binary files /dev/null and b/test/de_fuzz/corpus/372af6310cc8fae4f3cac496c1efcb090a604b4b differ
diff --git a/test/de_fuzz/corpus/37570a316ccad8b77cc63f69c35a854d2dc34e24 b/test/de_fuzz/corpus/37570a316ccad8b77cc63f69c35a854d2dc34e24
new file mode 100644
index 00000000..a4859d17
Binary files /dev/null and b/test/de_fuzz/corpus/37570a316ccad8b77cc63f69c35a854d2dc34e24 differ
diff --git a/test/de_fuzz/corpus/37864b1a9ef49ed7dc27cd5ebcd5d9705eddb025 b/test/de_fuzz/corpus/37864b1a9ef49ed7dc27cd5ebcd5d9705eddb025
new file mode 100644
index 00000000..66b6cdd7
Binary files /dev/null and b/test/de_fuzz/corpus/37864b1a9ef49ed7dc27cd5ebcd5d9705eddb025 differ
diff --git a/test/de_fuzz/corpus/37898dd09d16a235a22a2c6b2c8d585bb008883f b/test/de_fuzz/corpus/37898dd09d16a235a22a2c6b2c8d585bb008883f
new file mode 100644
index 00000000..7265afe9
Binary files /dev/null and b/test/de_fuzz/corpus/37898dd09d16a235a22a2c6b2c8d585bb008883f differ
diff --git a/test/de_fuzz/corpus/37e2d2436dec88f9700bdf4697e66e18ac584a6c b/test/de_fuzz/corpus/37e2d2436dec88f9700bdf4697e66e18ac584a6c
new file mode 100644
index 00000000..3f249887
Binary files /dev/null and b/test/de_fuzz/corpus/37e2d2436dec88f9700bdf4697e66e18ac584a6c differ
diff --git a/test/de_fuzz/corpus/37ecb323186413bdf5d0f68e96ea3e5e1fe02cc5 b/test/de_fuzz/corpus/37ecb323186413bdf5d0f68e96ea3e5e1fe02cc5
new file mode 100644
index 00000000..58a00ade
Binary files /dev/null and b/test/de_fuzz/corpus/37ecb323186413bdf5d0f68e96ea3e5e1fe02cc5 differ
diff --git a/test/de_fuzz/corpus/380f7de3ffd8254f3f5c02aa49a1a1664cdfc70a b/test/de_fuzz/corpus/380f7de3ffd8254f3f5c02aa49a1a1664cdfc70a
new file mode 100644
index 00000000..45f2e9e8
Binary files /dev/null and b/test/de_fuzz/corpus/380f7de3ffd8254f3f5c02aa49a1a1664cdfc70a differ
diff --git a/test/de_fuzz/corpus/38600731936a76ea4257b2765969e5319463a40b b/test/de_fuzz/corpus/38600731936a76ea4257b2765969e5319463a40b
new file mode 100644
index 00000000..3f6720b6
--- /dev/null
+++ b/test/de_fuzz/corpus/38600731936a76ea4257b2765969e5319463a40b
@@ -0,0 +1,193 @@
+'è (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* # optional leading comment
+(?: (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+) # initial word
+(?: (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".(?\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+) )* # further okay, if led by a period
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* @ (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # initial subdomain
+(?: #
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. # if led by a period...
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # ...further okay
+)*
+# address
+| # or
+(?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+) # one word, optionally followed by....
+(?:
+[^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037] | # atom and space parts, or...
+\(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) | # comments, or...
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+# quoted strings
+)*
+< (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* # leading <
+(?: @ (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # initial subdomain
+(?: #
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. # if led by a period...
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # ...further okay
+)*
+(?: (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* , (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* @ (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # initial subdomain
+(?: #
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. # if led by a period...
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # ...further okay
+)*
+)* # further okay, if led by comma
+: # closing colon
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* )? # optional route
+(?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+) # initial word
+(?: (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+) )* # further okay, if led by a period
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* @ (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # initial subdomain
+(?: #
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. # if led by a period...
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # ...further okay
+)*
+# address spec
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* > # trailing >
+# name and address
+) (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* # optional trailing comment
+
+
\ No newline at end of file
diff --git a/test/de_fuzz/corpus/38670f5ba0a673edcb9451d2b66e98274848510f b/test/de_fuzz/corpus/38670f5ba0a673edcb9451d2b66e98274848510f
new file mode 100644
index 00000000..ded6413b
Binary files /dev/null and b/test/de_fuzz/corpus/38670f5ba0a673edcb9451d2b66e98274848510f differ
diff --git a/test/de_fuzz/corpus/389e14d06affecf4732a167da95ad80df0c60769 b/test/de_fuzz/corpus/389e14d06affecf4732a167da95ad80df0c60769
new file mode 100644
index 00000000..79d93f94
Binary files /dev/null and b/test/de_fuzz/corpus/389e14d06affecf4732a167da95ad80df0c60769 differ
diff --git a/test/de_fuzz/corpus/38a6822fe54f812cd31b2b677d220da94de1e826 b/test/de_fuzz/corpus/38a6822fe54f812cd31b2b677d220da94de1e826
new file mode 100644
index 00000000..8967536e
Binary files /dev/null and b/test/de_fuzz/corpus/38a6822fe54f812cd31b2b677d220da94de1e826 differ
diff --git a/test/de_fuzz/corpus/38a7beafb9652f74e789fe97359b5cd210fd2ae9 b/test/de_fuzz/corpus/38a7beafb9652f74e789fe97359b5cd210fd2ae9
new file mode 100644
index 00000000..ff906464
Binary files /dev/null and b/test/de_fuzz/corpus/38a7beafb9652f74e789fe97359b5cd210fd2ae9 differ
diff --git a/test/de_fuzz/corpus/38b1f9a056f4af47f27499b903c5ba6aafd0748d b/test/de_fuzz/corpus/38b1f9a056f4af47f27499b903c5ba6aafd0748d
new file mode 100644
index 00000000..2254cf9e
Binary files /dev/null and b/test/de_fuzz/corpus/38b1f9a056f4af47f27499b903c5ba6aafd0748d differ
diff --git a/test/de_fuzz/corpus/38c2ea3cf1f618d6aeadb2d5e950dbf03a97940d b/test/de_fuzz/corpus/38c2ea3cf1f618d6aeadb2d5e950dbf03a97940d
new file mode 100644
index 00000000..2d0524ce
Binary files /dev/null and b/test/de_fuzz/corpus/38c2ea3cf1f618d6aeadb2d5e950dbf03a97940d differ
diff --git a/test/de_fuzz/corpus/38db59e3dc0bea9700b764cfbc8c62d6b2b4f191 b/test/de_fuzz/corpus/38db59e3dc0bea9700b764cfbc8c62d6b2b4f191
new file mode 100644
index 00000000..db4ab31c
Binary files /dev/null and b/test/de_fuzz/corpus/38db59e3dc0bea9700b764cfbc8c62d6b2b4f191 differ
diff --git a/test/de_fuzz/corpus/38db64e2e20855f9e5d74cb4391308959a9c85ac b/test/de_fuzz/corpus/38db64e2e20855f9e5d74cb4391308959a9c85ac
new file mode 100644
index 00000000..85ac8cfd
Binary files /dev/null and b/test/de_fuzz/corpus/38db64e2e20855f9e5d74cb4391308959a9c85ac differ
diff --git a/test/de_fuzz/corpus/38f39ef8e95abe76ace27b15cef878df542ade66 b/test/de_fuzz/corpus/38f39ef8e95abe76ace27b15cef878df542ade66
new file mode 100644
index 00000000..8f7e5136
Binary files /dev/null and b/test/de_fuzz/corpus/38f39ef8e95abe76ace27b15cef878df542ade66 differ
diff --git a/test/de_fuzz/corpus/38fe7672cad12105405aec1785faa47d9b7a9856 b/test/de_fuzz/corpus/38fe7672cad12105405aec1785faa47d9b7a9856
new file mode 100644
index 00000000..383a9faf
Binary files /dev/null and b/test/de_fuzz/corpus/38fe7672cad12105405aec1785faa47d9b7a9856 differ
diff --git a/test/de_fuzz/corpus/391de3c4fea166d80f9ed06af211962d709dbe78 b/test/de_fuzz/corpus/391de3c4fea166d80f9ed06af211962d709dbe78
new file mode 100644
index 00000000..aedc18ac
Binary files /dev/null and b/test/de_fuzz/corpus/391de3c4fea166d80f9ed06af211962d709dbe78 differ
diff --git a/test/de_fuzz/corpus/39393eda73d8e73d64f06b4bbf2a5e58ce5af742 b/test/de_fuzz/corpus/39393eda73d8e73d64f06b4bbf2a5e58ce5af742
new file mode 100644
index 00000000..95ab9b3f
Binary files /dev/null and b/test/de_fuzz/corpus/39393eda73d8e73d64f06b4bbf2a5e58ce5af742 differ
diff --git a/test/de_fuzz/corpus/393a7874fc3bbe96de7dc9974c84b28b04b7e448 b/test/de_fuzz/corpus/393a7874fc3bbe96de7dc9974c84b28b04b7e448
new file mode 100644
index 00000000..8fd71a1c
--- /dev/null
+++ b/test/de_fuzz/corpus/393a7874fc3bbe96de7dc9974c84b28b04b7e448
@@ -0,0 +1 @@
+Z(((((((a+)+)+)+)+)+)+)+|Y(((((((a+)+)+)+)+)+)+)+|X((((()+)+)+|X(((((((a+)+)+)+)+)+)+)+(|W((((((a+)+)++)+)i+)+)+|V(((((((a+)|Y(((((((a+)+)+)+)+)+)+)+|X((((()+)+)+|X(((((((a+)+)+)+)+)+)+)+(|W((((((a+)+)++)+)i+)+)+|V(((((((a+)+)+!\Pd2((a+)+)+)+)+)+)+)+(|W((((((a+)+)++)+)i+)+)+|V(((((((a+)+)+!\Pd2(a+)+)+)+)+)+)++)+!\Pd2((a+)+)+)+)+)+)+)+(|W((((((a+)+)++)+)i+)+)+|V(((((((a+)+)+!\Pd2(a+)+)+)+)+)+)+)+|(a+)+bc
\ No newline at end of file
diff --git a/test/de_fuzz/corpus/39468701dcf8538b1bef61004da99e49cdae7f62 b/test/de_fuzz/corpus/39468701dcf8538b1bef61004da99e49cdae7f62
new file mode 100644
index 00000000..ec7814ac
Binary files /dev/null and b/test/de_fuzz/corpus/39468701dcf8538b1bef61004da99e49cdae7f62 differ
diff --git a/test/de_fuzz/corpus/39660f31219d051288850d27eaf02a6296ce12c7 b/test/de_fuzz/corpus/39660f31219d051288850d27eaf02a6296ce12c7
new file mode 100644
index 00000000..792ae69b
Binary files /dev/null and b/test/de_fuzz/corpus/39660f31219d051288850d27eaf02a6296ce12c7 differ
diff --git a/test/de_fuzz/corpus/39d91c4c8f93d4a7332cadccd4d68db2141b0ca5 b/test/de_fuzz/corpus/39d91c4c8f93d4a7332cadccd4d68db2141b0ca5
new file mode 100644
index 00000000..c8ff675e
Binary files /dev/null and b/test/de_fuzz/corpus/39d91c4c8f93d4a7332cadccd4d68db2141b0ca5 differ
diff --git a/test/de_fuzz/corpus/39db8798cc7c6b4d517e2a235c5d8912dab8fba8 b/test/de_fuzz/corpus/39db8798cc7c6b4d517e2a235c5d8912dab8fba8
new file mode 100644
index 00000000..b7cab7df
Binary files /dev/null and b/test/de_fuzz/corpus/39db8798cc7c6b4d517e2a235c5d8912dab8fba8 differ
diff --git a/test/de_fuzz/corpus/39ea06aaaa4bcd0a1aa4bb8a1b1398c6cda358c3 b/test/de_fuzz/corpus/39ea06aaaa4bcd0a1aa4bb8a1b1398c6cda358c3
new file mode 100644
index 00000000..0271b89c
Binary files /dev/null and b/test/de_fuzz/corpus/39ea06aaaa4bcd0a1aa4bb8a1b1398c6cda358c3 differ
diff --git a/test/de_fuzz/corpus/39fcc3299790b4b309ac9251eb620aa043d67c47 b/test/de_fuzz/corpus/39fcc3299790b4b309ac9251eb620aa043d67c47
new file mode 100644
index 00000000..14ff4611
Binary files /dev/null and b/test/de_fuzz/corpus/39fcc3299790b4b309ac9251eb620aa043d67c47 differ
diff --git a/test/de_fuzz/corpus/3a28f5af007d60a8cf20be0ee683df9b92b59abf b/test/de_fuzz/corpus/3a28f5af007d60a8cf20be0ee683df9b92b59abf
new file mode 100644
index 00000000..f8214b2b
Binary files /dev/null and b/test/de_fuzz/corpus/3a28f5af007d60a8cf20be0ee683df9b92b59abf differ
diff --git a/test/de_fuzz/corpus/3a2c1736f8c31fda333d8fc7d146cc7da244afcc b/test/de_fuzz/corpus/3a2c1736f8c31fda333d8fc7d146cc7da244afcc
new file mode 100644
index 00000000..ec28d4fa
Binary files /dev/null and b/test/de_fuzz/corpus/3a2c1736f8c31fda333d8fc7d146cc7da244afcc differ
diff --git a/test/de_fuzz/corpus/3a4f51143ed9a492e1b54b83f273d2e5acdbe8ad b/test/de_fuzz/corpus/3a4f51143ed9a492e1b54b83f273d2e5acdbe8ad
new file mode 100644
index 00000000..1863db4b
Binary files /dev/null and b/test/de_fuzz/corpus/3a4f51143ed9a492e1b54b83f273d2e5acdbe8ad differ
diff --git a/test/de_fuzz/corpus/3a895b75dfcbac1fdb12b57f4306d8f8e42bea78 b/test/de_fuzz/corpus/3a895b75dfcbac1fdb12b57f4306d8f8e42bea78
new file mode 100644
index 00000000..258b4f7a
Binary files /dev/null and b/test/de_fuzz/corpus/3a895b75dfcbac1fdb12b57f4306d8f8e42bea78 differ
diff --git a/test/de_fuzz/corpus/3a9f61aa5c01e7aeae1723c62e31c899a2694a49 b/test/de_fuzz/corpus/3a9f61aa5c01e7aeae1723c62e31c899a2694a49
new file mode 100644
index 00000000..ea80411d
Binary files /dev/null and b/test/de_fuzz/corpus/3a9f61aa5c01e7aeae1723c62e31c899a2694a49 differ
diff --git a/test/de_fuzz/corpus/3ab1733990dcb2ca603e4c245b6fb7f2f31f31e0 b/test/de_fuzz/corpus/3ab1733990dcb2ca603e4c245b6fb7f2f31f31e0
new file mode 100644
index 00000000..642a4b85
Binary files /dev/null and b/test/de_fuzz/corpus/3ab1733990dcb2ca603e4c245b6fb7f2f31f31e0 differ
diff --git a/test/de_fuzz/corpus/3ae3a2c2cede90f05c9eadfd1a59d6172ffd017b b/test/de_fuzz/corpus/3ae3a2c2cede90f05c9eadfd1a59d6172ffd017b
new file mode 100644
index 00000000..6cbd3992
Binary files /dev/null and b/test/de_fuzz/corpus/3ae3a2c2cede90f05c9eadfd1a59d6172ffd017b differ
diff --git a/test/de_fuzz/corpus/3aed2e54723e7864e6f6cd8a2a9cd38ee069628b b/test/de_fuzz/corpus/3aed2e54723e7864e6f6cd8a2a9cd38ee069628b
new file mode 100644
index 00000000..0889bfc3
Binary files /dev/null and b/test/de_fuzz/corpus/3aed2e54723e7864e6f6cd8a2a9cd38ee069628b differ
diff --git a/test/de_fuzz/corpus/3aef82b39cb39757bf91d80ea87e7dcd4d3d6ac8 b/test/de_fuzz/corpus/3aef82b39cb39757bf91d80ea87e7dcd4d3d6ac8
new file mode 100644
index 00000000..a3dd8fd9
Binary files /dev/null and b/test/de_fuzz/corpus/3aef82b39cb39757bf91d80ea87e7dcd4d3d6ac8 differ
diff --git a/test/de_fuzz/corpus/3b10d84160afd99d8dacafe59888931b8fc09d3c b/test/de_fuzz/corpus/3b10d84160afd99d8dacafe59888931b8fc09d3c
new file mode 100644
index 00000000..be40b516
Binary files /dev/null and b/test/de_fuzz/corpus/3b10d84160afd99d8dacafe59888931b8fc09d3c differ
diff --git a/test/de_fuzz/corpus/3b2f52a1e4105658c758deb815c498bd163f301d b/test/de_fuzz/corpus/3b2f52a1e4105658c758deb815c498bd163f301d
new file mode 100644
index 00000000..d1bed2ec
Binary files /dev/null and b/test/de_fuzz/corpus/3b2f52a1e4105658c758deb815c498bd163f301d differ
diff --git a/test/de_fuzz/corpus/3b41889c629bca7767f2354af70afafc7b6dbe26 b/test/de_fuzz/corpus/3b41889c629bca7767f2354af70afafc7b6dbe26
new file mode 100644
index 00000000..7bdf63d3
Binary files /dev/null and b/test/de_fuzz/corpus/3b41889c629bca7767f2354af70afafc7b6dbe26 differ
diff --git a/test/de_fuzz/corpus/3b81394875bbe9180e06e91746b12f8625491593 b/test/de_fuzz/corpus/3b81394875bbe9180e06e91746b12f8625491593
new file mode 100644
index 00000000..edb598e8
Binary files /dev/null and b/test/de_fuzz/corpus/3b81394875bbe9180e06e91746b12f8625491593 differ
diff --git a/test/de_fuzz/corpus/3b8a8c09e936eb4a61ead3e06f944aec4c074450 b/test/de_fuzz/corpus/3b8a8c09e936eb4a61ead3e06f944aec4c074450
new file mode 100644
index 00000000..e37cfb10
Binary files /dev/null and b/test/de_fuzz/corpus/3b8a8c09e936eb4a61ead3e06f944aec4c074450 differ
diff --git a/test/de_fuzz/corpus/3b988c3586903e6120254d584bbe0b178b3be9ce b/test/de_fuzz/corpus/3b988c3586903e6120254d584bbe0b178b3be9ce
new file mode 100644
index 00000000..fc96c5f7
Binary files /dev/null and b/test/de_fuzz/corpus/3b988c3586903e6120254d584bbe0b178b3be9ce differ
diff --git a/test/de_fuzz/corpus/3bbbd7fc1e5ae15c03f96172ee157c91d7196c9c b/test/de_fuzz/corpus/3bbbd7fc1e5ae15c03f96172ee157c91d7196c9c
new file mode 100644
index 00000000..a5d62a56
Binary files /dev/null and b/test/de_fuzz/corpus/3bbbd7fc1e5ae15c03f96172ee157c91d7196c9c differ
diff --git a/test/de_fuzz/corpus/3bd1c88e2e61f3cdc365bc70aa3bcf2554e6cb33 b/test/de_fuzz/corpus/3bd1c88e2e61f3cdc365bc70aa3bcf2554e6cb33
new file mode 100644
index 00000000..dad13d7a
Binary files /dev/null and b/test/de_fuzz/corpus/3bd1c88e2e61f3cdc365bc70aa3bcf2554e6cb33 differ
diff --git a/test/de_fuzz/corpus/3c0e017d1c243704f7e1c7a1140f6418f46a3bf9 b/test/de_fuzz/corpus/3c0e017d1c243704f7e1c7a1140f6418f46a3bf9
new file mode 100644
index 00000000..22ba66a6
Binary files /dev/null and b/test/de_fuzz/corpus/3c0e017d1c243704f7e1c7a1140f6418f46a3bf9 differ
diff --git a/test/de_fuzz/corpus/3c56ace658e54ef7c967292d88b97c9d370f6d7f b/test/de_fuzz/corpus/3c56ace658e54ef7c967292d88b97c9d370f6d7f
new file mode 100644
index 00000000..b9186f42
Binary files /dev/null and b/test/de_fuzz/corpus/3c56ace658e54ef7c967292d88b97c9d370f6d7f differ
diff --git a/test/de_fuzz/corpus/3c56be82f6ab88e1c178f8f9f7f9581897bb5709 b/test/de_fuzz/corpus/3c56be82f6ab88e1c178f8f9f7f9581897bb5709
new file mode 100644
index 00000000..2351bb6a
Binary files /dev/null and b/test/de_fuzz/corpus/3c56be82f6ab88e1c178f8f9f7f9581897bb5709 differ
diff --git a/test/de_fuzz/corpus/3c614ed45bef24780b48315adc9120993eb6456e b/test/de_fuzz/corpus/3c614ed45bef24780b48315adc9120993eb6456e
new file mode 100644
index 00000000..098fe48a
Binary files /dev/null and b/test/de_fuzz/corpus/3c614ed45bef24780b48315adc9120993eb6456e differ
diff --git a/test/de_fuzz/corpus/3c78185ce219da3711bd74099d5279d185c203c1 b/test/de_fuzz/corpus/3c78185ce219da3711bd74099d5279d185c203c1
new file mode 100644
index 00000000..363d09fa
Binary files /dev/null and b/test/de_fuzz/corpus/3c78185ce219da3711bd74099d5279d185c203c1 differ
diff --git a/test/de_fuzz/corpus/3cc53dd6b4cebc89022cd1742c7130990ce6b398 b/test/de_fuzz/corpus/3cc53dd6b4cebc89022cd1742c7130990ce6b398
new file mode 100644
index 00000000..73b605b6
Binary files /dev/null and b/test/de_fuzz/corpus/3cc53dd6b4cebc89022cd1742c7130990ce6b398 differ
diff --git a/test/de_fuzz/corpus/3ccdf9e8d12015f159a722b32caa375c3424fce5 b/test/de_fuzz/corpus/3ccdf9e8d12015f159a722b32caa375c3424fce5
new file mode 100644
index 00000000..e6613494
Binary files /dev/null and b/test/de_fuzz/corpus/3ccdf9e8d12015f159a722b32caa375c3424fce5 differ
diff --git a/test/de_fuzz/corpus/3cf1c5a8c152a0ad802e6c5483aff89824feea93 b/test/de_fuzz/corpus/3cf1c5a8c152a0ad802e6c5483aff89824feea93
new file mode 100644
index 00000000..4a851aa2
--- /dev/null
+++ b/test/de_fuzz/corpus/3cf1c5a8c152a0ad802e6c5483aff89824feea93
@@ -0,0 +1 @@
+8^\l*(?:((.*?)\W*(?1)\W*\2| |((.)\W*(?3)\W*\4|\WM*))\W*$T\W*(?3)\W*\4|\W)ox \x{13}
\ No newline at end of file
diff --git a/test/de_fuzz/corpus/3d29d7520a928918bcd8ae77cd52bbfe9e6d957e b/test/de_fuzz/corpus/3d29d7520a928918bcd8ae77cd52bbfe9e6d957e
new file mode 100644
index 00000000..53e3788c
Binary files /dev/null and b/test/de_fuzz/corpus/3d29d7520a928918bcd8ae77cd52bbfe9e6d957e differ
diff --git a/test/de_fuzz/corpus/3d330fc455983e0b7f63c721c748d83720c0b1d9 b/test/de_fuzz/corpus/3d330fc455983e0b7f63c721c748d83720c0b1d9
new file mode 100644
index 00000000..b42eb893
Binary files /dev/null and b/test/de_fuzz/corpus/3d330fc455983e0b7f63c721c748d83720c0b1d9 differ
diff --git a/test/de_fuzz/corpus/3d5d9707818fd8c2588ca8f8801eb41c1fb96bca b/test/de_fuzz/corpus/3d5d9707818fd8c2588ca8f8801eb41c1fb96bca
new file mode 100644
index 00000000..51da9c77
--- /dev/null
+++ b/test/de_fuzz/corpus/3d5d9707818fd8c2588ca8f8801eb41c1fb96bca
@@ -0,0 +1,194 @@
+'è (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* # optional le\Qing comment
+(?: (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+) # initial word
+(?: (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+) )* # further okay, if led by a period
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* @ (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # initial subdomain
+(?: #
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. # if led by a period...
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # ...further okay
+)*
+# address
+| # or
+(?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+) # one word, optionally followed by....
+(?:
+[^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037] | # atom and space parts, or...
+\(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) | # comments, or...
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+# quoted strings
+)*
+< (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* # leading <
+(?: @ (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # initial subdomain
+(?: #
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. # if led by a period...
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # ...further okay
+)*
+(?: (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* , (?: [\00\4t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* @ (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # initial subdomain
+(?: #
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. # if led by a period...
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # ...further okay
+)*
+)* # further okay, if led by comma
+: # closing colon
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* )? # optional route
+(?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+) # initial word
+(?: (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+) )* # further okay, if led by a period
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* @ (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # initial subdomain
+(?: #
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x8 address spec
+(?: [\040\t] | \(
+(?: [^\\\x80 # if led by a period...
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # ...further okay
+)*
+# address spec
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* > # trailing >
+# name and address
+) (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* # optional trailing comment
+
+
\ No newline at end of file
diff --git a/test/de_fuzz/corpus/3d9f9f8b8480e507ea1128908429076fdf636a47 b/test/de_fuzz/corpus/3d9f9f8b8480e507ea1128908429076fdf636a47
new file mode 100644
index 00000000..31a80d3a
Binary files /dev/null and b/test/de_fuzz/corpus/3d9f9f8b8480e507ea1128908429076fdf636a47 differ
diff --git a/test/de_fuzz/corpus/3e20a7f3f5c62da5fcb5ed920a85bd7dd35c816a b/test/de_fuzz/corpus/3e20a7f3f5c62da5fcb5ed920a85bd7dd35c816a
new file mode 100644
index 00000000..64c331fc
Binary files /dev/null and b/test/de_fuzz/corpus/3e20a7f3f5c62da5fcb5ed920a85bd7dd35c816a differ
diff --git a/test/de_fuzz/corpus/3e22d722eec59dea508aef7a3acd60d8f3dbb0a1 b/test/de_fuzz/corpus/3e22d722eec59dea508aef7a3acd60d8f3dbb0a1
new file mode 100644
index 00000000..f0c91be8
Binary files /dev/null and b/test/de_fuzz/corpus/3e22d722eec59dea508aef7a3acd60d8f3dbb0a1 differ
diff --git a/test/de_fuzz/corpus/3e3cd3f480245d5dc87b10e0695140c0b717190d b/test/de_fuzz/corpus/3e3cd3f480245d5dc87b10e0695140c0b717190d
new file mode 100644
index 00000000..cb2b8765
Binary files /dev/null and b/test/de_fuzz/corpus/3e3cd3f480245d5dc87b10e0695140c0b717190d differ
diff --git a/test/de_fuzz/corpus/3e6fe002c93beb0aedbde53c24246f843f85dcc8 b/test/de_fuzz/corpus/3e6fe002c93beb0aedbde53c24246f843f85dcc8
new file mode 100644
index 00000000..e7111ca4
Binary files /dev/null and b/test/de_fuzz/corpus/3e6fe002c93beb0aedbde53c24246f843f85dcc8 differ
diff --git a/test/de_fuzz/corpus/3e8373bee1462372dee0db06f15136688d3bf239 b/test/de_fuzz/corpus/3e8373bee1462372dee0db06f15136688d3bf239
new file mode 100644
index 00000000..9100668d
--- /dev/null
+++ b/test/de_fuzz/corpus/3e8373bee1462372dee0db06f15136688d3bf239
@@ -0,0 +1 @@
+Z(((((((a+)+)+)+)+)+)+)+|Y(((((((a+)+)+)+)+)+)+)+|X(((((((a+)+)+)+)+)+)+\u)+|W(((((((a+)+)+)+)+)+)+)+|V(((((((a+)+)+)+)+)+)+)+|CZ(((((((a+)+)+)+)+)+)+)+|CY(((((((a+)+)+)+)+)+)+)+|CX(((((((a+)+)+)+)+)+)+)+|CW(((((((a+)+)+)+)+)+)+)+|CV(((((((a+)+)+)+)+)+)+)+|(a+)+bc
\ No newline at end of file
diff --git a/test/de_fuzz/corpus/3ebe5e5ba66b50fc3678bca714a44c8d210ae404 b/test/de_fuzz/corpus/3ebe5e5ba66b50fc3678bca714a44c8d210ae404
new file mode 100644
index 00000000..ccdfe762
Binary files /dev/null and b/test/de_fuzz/corpus/3ebe5e5ba66b50fc3678bca714a44c8d210ae404 differ
diff --git a/test/de_fuzz/corpus/3ed2c5f8e9af344f11f3cf0699082a88d82ea2b2 b/test/de_fuzz/corpus/3ed2c5f8e9af344f11f3cf0699082a88d82ea2b2
new file mode 100644
index 00000000..43dcb3de
Binary files /dev/null and b/test/de_fuzz/corpus/3ed2c5f8e9af344f11f3cf0699082a88d82ea2b2 differ
diff --git a/test/de_fuzz/corpus/3efabaf0aae655515951bcf9bf13098b62ca95b5 b/test/de_fuzz/corpus/3efabaf0aae655515951bcf9bf13098b62ca95b5
new file mode 100644
index 00000000..5d366d4c
Binary files /dev/null and b/test/de_fuzz/corpus/3efabaf0aae655515951bcf9bf13098b62ca95b5 differ
diff --git a/test/de_fuzz/corpus/3f1373fb539a7dd0f7307cec8edf0c7c3e5c1ab0 b/test/de_fuzz/corpus/3f1373fb539a7dd0f7307cec8edf0c7c3e5c1ab0
new file mode 100644
index 00000000..c4e793b9
Binary files /dev/null and b/test/de_fuzz/corpus/3f1373fb539a7dd0f7307cec8edf0c7c3e5c1ab0 differ
diff --git a/test/de_fuzz/corpus/3f341b43ce6e639dd7f4c5e21dd34ac08188d47c b/test/de_fuzz/corpus/3f341b43ce6e639dd7f4c5e21dd34ac08188d47c
new file mode 100644
index 00000000..32021785
Binary files /dev/null and b/test/de_fuzz/corpus/3f341b43ce6e639dd7f4c5e21dd34ac08188d47c differ
diff --git a/test/de_fuzz/corpus/3f3d8af6cfa01eeed356ca540e707810cb797b80 b/test/de_fuzz/corpus/3f3d8af6cfa01eeed356ca540e707810cb797b80
new file mode 100644
index 00000000..ed7ab14b
Binary files /dev/null and b/test/de_fuzz/corpus/3f3d8af6cfa01eeed356ca540e707810cb797b80 differ
diff --git a/test/de_fuzz/corpus/3f4c7f731175ade978e557d6832bc9dfaedafeb5 b/test/de_fuzz/corpus/3f4c7f731175ade978e557d6832bc9dfaedafeb5
new file mode 100644
index 00000000..b5b365d1
Binary files /dev/null and b/test/de_fuzz/corpus/3f4c7f731175ade978e557d6832bc9dfaedafeb5 differ
diff --git a/test/de_fuzz/corpus/3f61c2098e2d9f87287ce4fbea4f9f94e3f77a50 b/test/de_fuzz/corpus/3f61c2098e2d9f87287ce4fbea4f9f94e3f77a50
new file mode 100644
index 00000000..e17b8f46
Binary files /dev/null and b/test/de_fuzz/corpus/3f61c2098e2d9f87287ce4fbea4f9f94e3f77a50 differ
diff --git a/test/de_fuzz/corpus/3f69731efdc09d3994dea81aa7d7e03633f8d33a b/test/de_fuzz/corpus/3f69731efdc09d3994dea81aa7d7e03633f8d33a
new file mode 100644
index 00000000..5d8d9067
Binary files /dev/null and b/test/de_fuzz/corpus/3f69731efdc09d3994dea81aa7d7e03633f8d33a differ
diff --git a/test/de_fuzz/corpus/3f6b4df9132a736c0904fc4405c008b996ea9801 b/test/de_fuzz/corpus/3f6b4df9132a736c0904fc4405c008b996ea9801
new file mode 100644
index 00000000..e881eae8
Binary files /dev/null and b/test/de_fuzz/corpus/3f6b4df9132a736c0904fc4405c008b996ea9801 differ
diff --git a/test/de_fuzz/corpus/3f9d9e3957e893cdc144a056e78445888097ab71 b/test/de_fuzz/corpus/3f9d9e3957e893cdc144a056e78445888097ab71
new file mode 100644
index 00000000..b1e0272b
Binary files /dev/null and b/test/de_fuzz/corpus/3f9d9e3957e893cdc144a056e78445888097ab71 differ
diff --git a/test/de_fuzz/corpus/3fb2eca5e12d9523371c273260f53008bea3540a b/test/de_fuzz/corpus/3fb2eca5e12d9523371c273260f53008bea3540a
new file mode 100644
index 00000000..92d0aa58
Binary files /dev/null and b/test/de_fuzz/corpus/3fb2eca5e12d9523371c273260f53008bea3540a differ
diff --git a/test/de_fuzz/corpus/3fba0c71d844a3c3e68dffd50b1c4782862b56c3 b/test/de_fuzz/corpus/3fba0c71d844a3c3e68dffd50b1c4782862b56c3
new file mode 100644
index 00000000..fbb09775
Binary files /dev/null and b/test/de_fuzz/corpus/3fba0c71d844a3c3e68dffd50b1c4782862b56c3 differ
diff --git a/test/de_fuzz/corpus/3fcfcd5988ece333dfc06b6aa3ebf6a3fb716fe2 b/test/de_fuzz/corpus/3fcfcd5988ece333dfc06b6aa3ebf6a3fb716fe2
new file mode 100644
index 00000000..edd98119
Binary files /dev/null and b/test/de_fuzz/corpus/3fcfcd5988ece333dfc06b6aa3ebf6a3fb716fe2 differ
diff --git a/test/de_fuzz/corpus/4008039a0b0ede131124aa8e73f0a3545b3ef563 b/test/de_fuzz/corpus/4008039a0b0ede131124aa8e73f0a3545b3ef563
new file mode 100644
index 00000000..84adbdfb
Binary files /dev/null and b/test/de_fuzz/corpus/4008039a0b0ede131124aa8e73f0a3545b3ef563 differ
diff --git a/test/de_fuzz/corpus/400d9921eba2fb8676dc2f8c47d28e4d39d1e1ff b/test/de_fuzz/corpus/400d9921eba2fb8676dc2f8c47d28e4d39d1e1ff
new file mode 100644
index 00000000..7d7b8637
Binary files /dev/null and b/test/de_fuzz/corpus/400d9921eba2fb8676dc2f8c47d28e4d39d1e1ff differ
diff --git a/test/de_fuzz/corpus/40171a9731ad50cccfab4b5fac5cd8ff16f026d7 b/test/de_fuzz/corpus/40171a9731ad50cccfab4b5fac5cd8ff16f026d7
new file mode 100644
index 00000000..855a5e1e
Binary files /dev/null and b/test/de_fuzz/corpus/40171a9731ad50cccfab4b5fac5cd8ff16f026d7 differ
diff --git a/test/de_fuzz/corpus/403db563825a4768328ee06d7594289320f83db8 b/test/de_fuzz/corpus/403db563825a4768328ee06d7594289320f83db8
new file mode 100644
index 00000000..3cd8d23d
Binary files /dev/null and b/test/de_fuzz/corpus/403db563825a4768328ee06d7594289320f83db8 differ
diff --git a/test/de_fuzz/corpus/4057a483a3f38bf6e143bf0ad35e7e7a8df2962d b/test/de_fuzz/corpus/4057a483a3f38bf6e143bf0ad35e7e7a8df2962d
new file mode 100644
index 00000000..c4866bee
Binary files /dev/null and b/test/de_fuzz/corpus/4057a483a3f38bf6e143bf0ad35e7e7a8df2962d differ
diff --git a/test/de_fuzz/corpus/4059bff6c208317966fa93af2737b353e7acc86c b/test/de_fuzz/corpus/4059bff6c208317966fa93af2737b353e7acc86c
new file mode 100644
index 00000000..f25da430
Binary files /dev/null and b/test/de_fuzz/corpus/4059bff6c208317966fa93af2737b353e7acc86c differ
diff --git a/test/de_fuzz/corpus/406cb54b9d002dfb99c808225b10535ad2c7c6a1 b/test/de_fuzz/corpus/406cb54b9d002dfb99c808225b10535ad2c7c6a1
new file mode 100644
index 00000000..82dd7c70
Binary files /dev/null and b/test/de_fuzz/corpus/406cb54b9d002dfb99c808225b10535ad2c7c6a1 differ
diff --git a/test/de_fuzz/corpus/40705167e13990984922dd4afb1c747b3f89e133 b/test/de_fuzz/corpus/40705167e13990984922dd4afb1c747b3f89e133
new file mode 100644
index 00000000..c3db454a
Binary files /dev/null and b/test/de_fuzz/corpus/40705167e13990984922dd4afb1c747b3f89e133 differ
diff --git a/test/de_fuzz/corpus/407def7ae2c2cd4b1ab0f5172584316c86e31f64 b/test/de_fuzz/corpus/407def7ae2c2cd4b1ab0f5172584316c86e31f64
new file mode 100644
index 00000000..36594582
Binary files /dev/null and b/test/de_fuzz/corpus/407def7ae2c2cd4b1ab0f5172584316c86e31f64 differ
diff --git a/test/de_fuzz/corpus/4099102436b6a39bdf3be79b9484a47da1012c90 b/test/de_fuzz/corpus/4099102436b6a39bdf3be79b9484a47da1012c90
new file mode 100644
index 00000000..67593c52
Binary files /dev/null and b/test/de_fuzz/corpus/4099102436b6a39bdf3be79b9484a47da1012c90 differ
diff --git a/test/de_fuzz/corpus/40a51036bf483e60e2918a53b28867856742b8b6 b/test/de_fuzz/corpus/40a51036bf483e60e2918a53b28867856742b8b6
new file mode 100644
index 00000000..00e4d7e4
Binary files /dev/null and b/test/de_fuzz/corpus/40a51036bf483e60e2918a53b28867856742b8b6 differ
diff --git a/test/de_fuzz/corpus/40d3007e3b2e608b548c864e4583a26be398c761 b/test/de_fuzz/corpus/40d3007e3b2e608b548c864e4583a26be398c761
new file mode 100644
index 00000000..8e51d559
Binary files /dev/null and b/test/de_fuzz/corpus/40d3007e3b2e608b548c864e4583a26be398c761 differ
diff --git a/test/de_fuzz/corpus/40fdb81099abde7fe8c6148ebfd303bcc6d44b56 b/test/de_fuzz/corpus/40fdb81099abde7fe8c6148ebfd303bcc6d44b56
new file mode 100644
index 00000000..a70e8278
Binary files /dev/null and b/test/de_fuzz/corpus/40fdb81099abde7fe8c6148ebfd303bcc6d44b56 differ
diff --git a/test/de_fuzz/corpus/4142628bf63fcdfd29d4c5a0287ffe1d6ff9d5ba b/test/de_fuzz/corpus/4142628bf63fcdfd29d4c5a0287ffe1d6ff9d5ba
new file mode 100644
index 00000000..bfd5b88a
Binary files /dev/null and b/test/de_fuzz/corpus/4142628bf63fcdfd29d4c5a0287ffe1d6ff9d5ba differ
diff --git a/test/de_fuzz/corpus/41448d5aeca1166c7be3b290ab9c084ee12e14a0 b/test/de_fuzz/corpus/41448d5aeca1166c7be3b290ab9c084ee12e14a0
new file mode 100644
index 00000000..1e964ed2
Binary files /dev/null and b/test/de_fuzz/corpus/41448d5aeca1166c7be3b290ab9c084ee12e14a0 differ
diff --git a/test/de_fuzz/corpus/4164c1f880f8475b774d5201af853868e258add3 b/test/de_fuzz/corpus/4164c1f880f8475b774d5201af853868e258add3
new file mode 100644
index 00000000..f60c7ae3
Binary files /dev/null and b/test/de_fuzz/corpus/4164c1f880f8475b774d5201af853868e258add3 differ
diff --git a/test/de_fuzz/corpus/419af0091b9ed9d18455e7cbbeec9536cadce91a b/test/de_fuzz/corpus/419af0091b9ed9d18455e7cbbeec9536cadce91a
new file mode 100644
index 00000000..e0da0069
Binary files /dev/null and b/test/de_fuzz/corpus/419af0091b9ed9d18455e7cbbeec9536cadce91a differ
diff --git a/test/de_fuzz/corpus/41d090cdc1306b49b9962fc9387af6c6b08ee24e b/test/de_fuzz/corpus/41d090cdc1306b49b9962fc9387af6c6b08ee24e
new file mode 100644
index 00000000..63df0ce3
Binary files /dev/null and b/test/de_fuzz/corpus/41d090cdc1306b49b9962fc9387af6c6b08ee24e differ
diff --git a/test/de_fuzz/corpus/4217df85ccc51e72f825e2d723e04f152ac6d01e b/test/de_fuzz/corpus/4217df85ccc51e72f825e2d723e04f152ac6d01e
new file mode 100644
index 00000000..969e2b7f
Binary files /dev/null and b/test/de_fuzz/corpus/4217df85ccc51e72f825e2d723e04f152ac6d01e differ
diff --git a/test/de_fuzz/corpus/422219afeaa0f13b4a6a3bb32ddafafe1c332007 b/test/de_fuzz/corpus/422219afeaa0f13b4a6a3bb32ddafafe1c332007
new file mode 100644
index 00000000..5c0f08a5
Binary files /dev/null and b/test/de_fuzz/corpus/422219afeaa0f13b4a6a3bb32ddafafe1c332007 differ
diff --git a/test/de_fuzz/corpus/42251307e29b10582dfe848b6c3c8a480786a022 b/test/de_fuzz/corpus/42251307e29b10582dfe848b6c3c8a480786a022
new file mode 100644
index 00000000..cd390944
Binary files /dev/null and b/test/de_fuzz/corpus/42251307e29b10582dfe848b6c3c8a480786a022 differ
diff --git a/test/de_fuzz/corpus/4225802357927bf5bfccb122953c2429479c99a1 b/test/de_fuzz/corpus/4225802357927bf5bfccb122953c2429479c99a1
new file mode 100644
index 00000000..ac1a5d34
Binary files /dev/null and b/test/de_fuzz/corpus/4225802357927bf5bfccb122953c2429479c99a1 differ
diff --git a/test/de_fuzz/corpus/422627ba3d34973f3fd6fd69827f02782343887c b/test/de_fuzz/corpus/422627ba3d34973f3fd6fd69827f02782343887c
new file mode 100644
index 00000000..fd5b064d
Binary files /dev/null and b/test/de_fuzz/corpus/422627ba3d34973f3fd6fd69827f02782343887c differ
diff --git a/test/de_fuzz/corpus/427e575573ba991c6b48f1e9123b9c425f6db2d0 b/test/de_fuzz/corpus/427e575573ba991c6b48f1e9123b9c425f6db2d0
new file mode 100644
index 00000000..51e3454b
Binary files /dev/null and b/test/de_fuzz/corpus/427e575573ba991c6b48f1e9123b9c425f6db2d0 differ
diff --git a/test/de_fuzz/corpus/428e1d6e7345094c8b754bc0d10f1e300ae7220e b/test/de_fuzz/corpus/428e1d6e7345094c8b754bc0d10f1e300ae7220e
new file mode 100644
index 00000000..e87045b1
Binary files /dev/null and b/test/de_fuzz/corpus/428e1d6e7345094c8b754bc0d10f1e300ae7220e differ
diff --git a/test/de_fuzz/corpus/42b4cc3acc0141d3e63588df7472b6273188c7fd b/test/de_fuzz/corpus/42b4cc3acc0141d3e63588df7472b6273188c7fd
new file mode 100644
index 00000000..bcb60224
Binary files /dev/null and b/test/de_fuzz/corpus/42b4cc3acc0141d3e63588df7472b6273188c7fd differ
diff --git a/test/de_fuzz/corpus/433bc1362b5d9b10559fa3f456f56ab7cb131451 b/test/de_fuzz/corpus/433bc1362b5d9b10559fa3f456f56ab7cb131451
new file mode 100644
index 00000000..99fae182
Binary files /dev/null and b/test/de_fuzz/corpus/433bc1362b5d9b10559fa3f456f56ab7cb131451 differ
diff --git a/test/de_fuzz/corpus/433bf9d31028f01d30e5aedfeff09f6ea8eba2fb b/test/de_fuzz/corpus/433bf9d31028f01d30e5aedfeff09f6ea8eba2fb
new file mode 100644
index 00000000..b8995e7d
Binary files /dev/null and b/test/de_fuzz/corpus/433bf9d31028f01d30e5aedfeff09f6ea8eba2fb differ
diff --git a/test/de_fuzz/corpus/43569a9fd7f0fd769b1997f58ad476b79c285d61 b/test/de_fuzz/corpus/43569a9fd7f0fd769b1997f58ad476b79c285d61
new file mode 100644
index 00000000..d83438ac
Binary files /dev/null and b/test/de_fuzz/corpus/43569a9fd7f0fd769b1997f58ad476b79c285d61 differ
diff --git a/test/de_fuzz/corpus/4369f7df5066c8cfcf977b10d3f0f4d811352511 b/test/de_fuzz/corpus/4369f7df5066c8cfcf977b10d3f0f4d811352511
new file mode 100644
index 00000000..2d8543e0
Binary files /dev/null and b/test/de_fuzz/corpus/4369f7df5066c8cfcf977b10d3f0f4d811352511 differ
diff --git a/test/de_fuzz/corpus/436d4ca90a28f4e0213a06f93aae554e80f4186c b/test/de_fuzz/corpus/436d4ca90a28f4e0213a06f93aae554e80f4186c
new file mode 100644
index 00000000..c90af723
Binary files /dev/null and b/test/de_fuzz/corpus/436d4ca90a28f4e0213a06f93aae554e80f4186c differ
diff --git a/test/de_fuzz/corpus/4382a7fd1f0059ea1f061304d3bc4be29151650f b/test/de_fuzz/corpus/4382a7fd1f0059ea1f061304d3bc4be29151650f
new file mode 100644
index 00000000..c4c1bcae
Binary files /dev/null and b/test/de_fuzz/corpus/4382a7fd1f0059ea1f061304d3bc4be29151650f differ
diff --git a/test/de_fuzz/corpus/43d6c941073fa2d0745b33f4e5b1e5ff6b2018fb b/test/de_fuzz/corpus/43d6c941073fa2d0745b33f4e5b1e5ff6b2018fb
new file mode 100644
index 00000000..4b5eff30
Binary files /dev/null and b/test/de_fuzz/corpus/43d6c941073fa2d0745b33f4e5b1e5ff6b2018fb differ
diff --git a/test/de_fuzz/corpus/44233e169bcc9f1b83b6a362bb399a43354630c9 b/test/de_fuzz/corpus/44233e169bcc9f1b83b6a362bb399a43354630c9
new file mode 100644
index 00000000..0788183b
--- /dev/null
+++ b/test/de_fuzz/corpus/44233e169bcc9f1b83b6a362bb399a43354630c9
@@ -0,0 +1,128 @@
+'è (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* # optional leading comment
+(?: (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+) # initial word
+(?: (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] itial subdomain
+(?: #
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. # if led by a period...
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # ...further okay
+)*
+(?: (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* , (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* @ (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # initial subdomain
+(?: #
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. # if led by a period...
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # ...further okay
+)*
+)* # further okay, if led by comma
+: # closing colon
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* )? # optional route
+(?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+) # initial word
+(?: (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+) )* # further okay, if led by a period
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* @ (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # initial subdomain
+(?: #
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. # if led by a period...
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # ...further okay
+)*
+# address spec
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* > # trailing >
+# name and address
+) (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* # optional trailing comment
+
+
\ No newline at end of file
diff --git a/test/de_fuzz/corpus/4435489056834775babe752ac3c975dcb5ee8f98 b/test/de_fuzz/corpus/4435489056834775babe752ac3c975dcb5ee8f98
new file mode 100644
index 00000000..1481e508
Binary files /dev/null and b/test/de_fuzz/corpus/4435489056834775babe752ac3c975dcb5ee8f98 differ
diff --git a/test/de_fuzz/corpus/444d6f11ae6c7baebffa45dbd190253f5c362a59 b/test/de_fuzz/corpus/444d6f11ae6c7baebffa45dbd190253f5c362a59
new file mode 100644
index 00000000..8bc874ed
Binary files /dev/null and b/test/de_fuzz/corpus/444d6f11ae6c7baebffa45dbd190253f5c362a59 differ
diff --git a/test/de_fuzz/corpus/4456a66840bbfd016157d67cc8f2619fbd9d862b b/test/de_fuzz/corpus/4456a66840bbfd016157d67cc8f2619fbd9d862b
new file mode 100644
index 00000000..cf1408af
Binary files /dev/null and b/test/de_fuzz/corpus/4456a66840bbfd016157d67cc8f2619fbd9d862b differ
diff --git a/test/de_fuzz/corpus/4470a7e6e422e12e1750b4c5a724dcdd9ade2193 b/test/de_fuzz/corpus/4470a7e6e422e12e1750b4c5a724dcdd9ade2193
new file mode 100644
index 00000000..5dc831d7
Binary files /dev/null and b/test/de_fuzz/corpus/4470a7e6e422e12e1750b4c5a724dcdd9ade2193 differ
diff --git a/test/de_fuzz/corpus/44b047b4adff4228bd11a6ff709a402e574c44b4 b/test/de_fuzz/corpus/44b047b4adff4228bd11a6ff709a402e574c44b4
new file mode 100644
index 00000000..4f37252c
Binary files /dev/null and b/test/de_fuzz/corpus/44b047b4adff4228bd11a6ff709a402e574c44b4 differ
diff --git a/test/de_fuzz/corpus/44b29fcdb9212e742aa0afbaefde84fbd60944fa b/test/de_fuzz/corpus/44b29fcdb9212e742aa0afbaefde84fbd60944fa
new file mode 100644
index 00000000..2c3788ad
Binary files /dev/null and b/test/de_fuzz/corpus/44b29fcdb9212e742aa0afbaefde84fbd60944fa differ
diff --git a/test/de_fuzz/corpus/45460bdad7be4477e16dc917400067b0ecc818aa b/test/de_fuzz/corpus/45460bdad7be4477e16dc917400067b0ecc818aa
new file mode 100644
index 00000000..1b4ae8cb
Binary files /dev/null and b/test/de_fuzz/corpus/45460bdad7be4477e16dc917400067b0ecc818aa differ
diff --git a/test/de_fuzz/corpus/4549d055c9b0c98e579928152c880ba6b365819d b/test/de_fuzz/corpus/4549d055c9b0c98e579928152c880ba6b365819d
new file mode 100644
index 00000000..72650b9a
Binary files /dev/null and b/test/de_fuzz/corpus/4549d055c9b0c98e579928152c880ba6b365819d differ
diff --git a/test/de_fuzz/corpus/4584f42df115582be8bbcdd09011a97a4cf4cf2e b/test/de_fuzz/corpus/4584f42df115582be8bbcdd09011a97a4cf4cf2e
new file mode 100644
index 00000000..1f36575c
Binary files /dev/null and b/test/de_fuzz/corpus/4584f42df115582be8bbcdd09011a97a4cf4cf2e differ
diff --git a/test/de_fuzz/corpus/4592971dda19991245ecaca9a716ac1d41511296 b/test/de_fuzz/corpus/4592971dda19991245ecaca9a716ac1d41511296
new file mode 100644
index 00000000..6161fd17
Binary files /dev/null and b/test/de_fuzz/corpus/4592971dda19991245ecaca9a716ac1d41511296 differ
diff --git a/test/de_fuzz/corpus/45a134f510cf0b8c805852cdcb97f1fb6425bae5 b/test/de_fuzz/corpus/45a134f510cf0b8c805852cdcb97f1fb6425bae5
new file mode 100644
index 00000000..0c2a4151
Binary files /dev/null and b/test/de_fuzz/corpus/45a134f510cf0b8c805852cdcb97f1fb6425bae5 differ
diff --git a/test/de_fuzz/corpus/45f4a14ef445388b5f4de101463cded27002e852 b/test/de_fuzz/corpus/45f4a14ef445388b5f4de101463cded27002e852
new file mode 100644
index 00000000..e39165b4
Binary files /dev/null and b/test/de_fuzz/corpus/45f4a14ef445388b5f4de101463cded27002e852 differ
diff --git a/test/de_fuzz/corpus/462f682b127168cf22b2ed77aa369acbad074215 b/test/de_fuzz/corpus/462f682b127168cf22b2ed77aa369acbad074215
new file mode 100644
index 00000000..333aff76
Binary files /dev/null and b/test/de_fuzz/corpus/462f682b127168cf22b2ed77aa369acbad074215 differ
diff --git a/test/de_fuzz/corpus/46c0e1a1336fdd766ed8578d93f3069af98c8897 b/test/de_fuzz/corpus/46c0e1a1336fdd766ed8578d93f3069af98c8897
new file mode 100644
index 00000000..db9117c8
Binary files /dev/null and b/test/de_fuzz/corpus/46c0e1a1336fdd766ed8578d93f3069af98c8897 differ
diff --git a/test/de_fuzz/corpus/46c838e407b6feda1dbcf600cf298a9bad350258 b/test/de_fuzz/corpus/46c838e407b6feda1dbcf600cf298a9bad350258
new file mode 100644
index 00000000..657efae9
Binary files /dev/null and b/test/de_fuzz/corpus/46c838e407b6feda1dbcf600cf298a9bad350258 differ
diff --git a/test/de_fuzz/corpus/46f0131c189f42b97b6be09cbd5012f850e5f7dd b/test/de_fuzz/corpus/46f0131c189f42b97b6be09cbd5012f850e5f7dd
new file mode 100644
index 00000000..cffdbdee
Binary files /dev/null and b/test/de_fuzz/corpus/46f0131c189f42b97b6be09cbd5012f850e5f7dd differ
diff --git a/test/de_fuzz/corpus/46faa91a1602b83be280e97a4f37966fe8988773 b/test/de_fuzz/corpus/46faa91a1602b83be280e97a4f37966fe8988773
new file mode 100644
index 00000000..807bc6bf
Binary files /dev/null and b/test/de_fuzz/corpus/46faa91a1602b83be280e97a4f37966fe8988773 differ
diff --git a/test/de_fuzz/corpus/46fd24a2a11ff21152bed94b4caf74afb6a849aa b/test/de_fuzz/corpus/46fd24a2a11ff21152bed94b4caf74afb6a849aa
new file mode 100644
index 00000000..8baaddb8
Binary files /dev/null and b/test/de_fuzz/corpus/46fd24a2a11ff21152bed94b4caf74afb6a849aa differ
diff --git a/test/de_fuzz/corpus/47001482368c691dd4b834f6c497f795450f2987 b/test/de_fuzz/corpus/47001482368c691dd4b834f6c497f795450f2987
new file mode 100644
index 00000000..07dd8260
Binary files /dev/null and b/test/de_fuzz/corpus/47001482368c691dd4b834f6c497f795450f2987 differ
diff --git a/test/de_fuzz/corpus/47230819862b7b4293f0d28bfea47d62c525c443 b/test/de_fuzz/corpus/47230819862b7b4293f0d28bfea47d62c525c443
new file mode 100644
index 00000000..16792cd7
Binary files /dev/null and b/test/de_fuzz/corpus/47230819862b7b4293f0d28bfea47d62c525c443 differ
diff --git a/test/de_fuzz/corpus/472619d0ccf7ded255369715e36d14fbdec62d5d b/test/de_fuzz/corpus/472619d0ccf7ded255369715e36d14fbdec62d5d
new file mode 100644
index 00000000..5cd581d4
Binary files /dev/null and b/test/de_fuzz/corpus/472619d0ccf7ded255369715e36d14fbdec62d5d differ
diff --git a/test/de_fuzz/corpus/474bd9a4d30edd4203a733569f4a8a7cf19ce612 b/test/de_fuzz/corpus/474bd9a4d30edd4203a733569f4a8a7cf19ce612
new file mode 100644
index 00000000..c6622e82
Binary files /dev/null and b/test/de_fuzz/corpus/474bd9a4d30edd4203a733569f4a8a7cf19ce612 differ
diff --git a/test/de_fuzz/corpus/479467d0a0eb1eb0bf4d489eb30c345fc949aab4 b/test/de_fuzz/corpus/479467d0a0eb1eb0bf4d489eb30c345fc949aab4
new file mode 100644
index 00000000..56ea9f75
Binary files /dev/null and b/test/de_fuzz/corpus/479467d0a0eb1eb0bf4d489eb30c345fc949aab4 differ
diff --git a/test/de_fuzz/corpus/47ce8fc94db8d3c2cd7737240cf60d3a46ea88a0 b/test/de_fuzz/corpus/47ce8fc94db8d3c2cd7737240cf60d3a46ea88a0
new file mode 100644
index 00000000..1235bd92
Binary files /dev/null and b/test/de_fuzz/corpus/47ce8fc94db8d3c2cd7737240cf60d3a46ea88a0 differ
diff --git a/test/de_fuzz/corpus/47d302e075c6ea4934507ec57cbf508ed56e87c5 b/test/de_fuzz/corpus/47d302e075c6ea4934507ec57cbf508ed56e87c5
new file mode 100644
index 00000000..316a6d4e
Binary files /dev/null and b/test/de_fuzz/corpus/47d302e075c6ea4934507ec57cbf508ed56e87c5 differ
diff --git a/test/de_fuzz/corpus/47df8193b9bb6628161033b67f1b897f25931c22 b/test/de_fuzz/corpus/47df8193b9bb6628161033b67f1b897f25931c22
new file mode 100644
index 00000000..bd6d0f89
Binary files /dev/null and b/test/de_fuzz/corpus/47df8193b9bb6628161033b67f1b897f25931c22 differ
diff --git a/test/de_fuzz/corpus/47f6ee83e23ea1fe99c93088d3c18491359ce125 b/test/de_fuzz/corpus/47f6ee83e23ea1fe99c93088d3c18491359ce125
new file mode 100644
index 00000000..16777625
Binary files /dev/null and b/test/de_fuzz/corpus/47f6ee83e23ea1fe99c93088d3c18491359ce125 differ
diff --git a/test/de_fuzz/corpus/481462b6299201e6f49b8f0b8453e4d7f4e15202 b/test/de_fuzz/corpus/481462b6299201e6f49b8f0b8453e4d7f4e15202
new file mode 100644
index 00000000..35dd5cae
Binary files /dev/null and b/test/de_fuzz/corpus/481462b6299201e6f49b8f0b8453e4d7f4e15202 differ
diff --git a/test/de_fuzz/corpus/48387dabf2255c2bc2273e1cbda0927fa52b8f3a b/test/de_fuzz/corpus/48387dabf2255c2bc2273e1cbda0927fa52b8f3a
new file mode 100644
index 00000000..9a0f7d92
Binary files /dev/null and b/test/de_fuzz/corpus/48387dabf2255c2bc2273e1cbda0927fa52b8f3a differ
diff --git a/test/de_fuzz/corpus/484ccb489d6dc69b61fd5e0dfd83669f50d2a29c b/test/de_fuzz/corpus/484ccb489d6dc69b61fd5e0dfd83669f50d2a29c
new file mode 100644
index 00000000..bec33051
Binary files /dev/null and b/test/de_fuzz/corpus/484ccb489d6dc69b61fd5e0dfd83669f50d2a29c differ
diff --git a/test/de_fuzz/corpus/4872faba03df6b8317b29af88bf485b4a2cf26b1 b/test/de_fuzz/corpus/4872faba03df6b8317b29af88bf485b4a2cf26b1
new file mode 100644
index 00000000..9437933f
Binary files /dev/null and b/test/de_fuzz/corpus/4872faba03df6b8317b29af88bf485b4a2cf26b1 differ
diff --git a/test/de_fuzz/corpus/488e273c215bcc150699768c32f242e9d2af54f5 b/test/de_fuzz/corpus/488e273c215bcc150699768c32f242e9d2af54f5
new file mode 100644
index 00000000..df15fa86
Binary files /dev/null and b/test/de_fuzz/corpus/488e273c215bcc150699768c32f242e9d2af54f5 differ
diff --git a/test/de_fuzz/corpus/4895cc6dd0d16825a3c489f9d69528f692707810 b/test/de_fuzz/corpus/4895cc6dd0d16825a3c489f9d69528f692707810
new file mode 100644
index 00000000..4380bb4a
Binary files /dev/null and b/test/de_fuzz/corpus/4895cc6dd0d16825a3c489f9d69528f692707810 differ
diff --git a/test/de_fuzz/corpus/48b15134a83976278c232320f1d9620fe5869211 b/test/de_fuzz/corpus/48b15134a83976278c232320f1d9620fe5869211
new file mode 100644
index 00000000..b141a5cf
Binary files /dev/null and b/test/de_fuzz/corpus/48b15134a83976278c232320f1d9620fe5869211 differ
diff --git a/test/de_fuzz/corpus/48b5fba3207818cdd8581d57757ec059f31cdef2 b/test/de_fuzz/corpus/48b5fba3207818cdd8581d57757ec059f31cdef2
new file mode 100644
index 00000000..27743f9e
Binary files /dev/null and b/test/de_fuzz/corpus/48b5fba3207818cdd8581d57757ec059f31cdef2 differ
diff --git a/test/de_fuzz/corpus/48c1fc0282a9e5c5a48bf34b04e32d55992cdbab b/test/de_fuzz/corpus/48c1fc0282a9e5c5a48bf34b04e32d55992cdbab
new file mode 100644
index 00000000..2e22273e
Binary files /dev/null and b/test/de_fuzz/corpus/48c1fc0282a9e5c5a48bf34b04e32d55992cdbab differ
diff --git a/test/de_fuzz/corpus/48d33b45a0a54bd3eee5782e0c1ef416ddb184bd b/test/de_fuzz/corpus/48d33b45a0a54bd3eee5782e0c1ef416ddb184bd
new file mode 100644
index 00000000..fd131ecb
Binary files /dev/null and b/test/de_fuzz/corpus/48d33b45a0a54bd3eee5782e0c1ef416ddb184bd differ
diff --git a/test/de_fuzz/corpus/48d867b17e6b809df18bd0d552f6184fe8c85f36 b/test/de_fuzz/corpus/48d867b17e6b809df18bd0d552f6184fe8c85f36
new file mode 100644
index 00000000..1150b04c
Binary files /dev/null and b/test/de_fuzz/corpus/48d867b17e6b809df18bd0d552f6184fe8c85f36 differ
diff --git a/test/de_fuzz/corpus/48e0667474d536ae69c8edbb860421e0bd877edd b/test/de_fuzz/corpus/48e0667474d536ae69c8edbb860421e0bd877edd
new file mode 100644
index 00000000..141d9630
Binary files /dev/null and b/test/de_fuzz/corpus/48e0667474d536ae69c8edbb860421e0bd877edd differ
diff --git a/test/de_fuzz/corpus/490ce3858c23984c18e9c046d14812466dd53fd1 b/test/de_fuzz/corpus/490ce3858c23984c18e9c046d14812466dd53fd1
new file mode 100644
index 00000000..22a6f3c7
--- /dev/null
+++ b/test/de_fuzz/corpus/490ce3858c23984c18e9c046d14812466dd53fd1
@@ -0,0 +1,193 @@
+'è (?: [\040\t] | \(
+(?:Œ [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* # optional leading comment
+(?: (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+) # initial word
+(?: (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something\Qhat could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+) )* # further okay, if led by a period
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* @ (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # initial subdomain
+(?: #
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. # if led by a period...
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # ...further okay
+)*
+# address
+| # or
+(?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+) # one word, optionally followed by....
+(?:
+[^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037] | # atom and space parts, or...
+\(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) | # comments, or...
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+# quoted strings
+)*
+< (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* # leading <
+(?: @ (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # initial subdomain
+(?: #
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. # if led by a period...
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # ...further okay
+)*
+(?: (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* , (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* @ (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # initial subdomain
+(?: #
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. # if led by a period...
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # ...further okay
+)*
+)* # further okay, if led by comma
+: # closing colon
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* )? # optional'route
+(?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+) # initial word
+(?: (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] ! # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+) )* # further okay, if led by a period
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* @ (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # initial subdomain
+(?: #
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. # if led by a period...
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # ...further okay
+)*
+# address spec
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* > # trailing >
+# name and address
+) (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* # optional trailing comment
+
+
\ No newline at end of file
diff --git a/test/de_fuzz/corpus/495b99b5830d68aa9d69e322eea719cfed832ec7 b/test/de_fuzz/corpus/495b99b5830d68aa9d69e322eea719cfed832ec7
new file mode 100644
index 00000000..12132d92
Binary files /dev/null and b/test/de_fuzz/corpus/495b99b5830d68aa9d69e322eea719cfed832ec7 differ
diff --git a/test/de_fuzz/corpus/496faa5e071104f6bcad88a2e746cefb7be315a6 b/test/de_fuzz/corpus/496faa5e071104f6bcad88a2e746cefb7be315a6
new file mode 100644
index 00000000..9c9fbd43
Binary files /dev/null and b/test/de_fuzz/corpus/496faa5e071104f6bcad88a2e746cefb7be315a6 differ
diff --git a/test/de_fuzz/corpus/499aaec0ef6af3f540ffd14e50e87bca0f73a389 b/test/de_fuzz/corpus/499aaec0ef6af3f540ffd14e50e87bca0f73a389
new file mode 100644
index 00000000..469108fb
Binary files /dev/null and b/test/de_fuzz/corpus/499aaec0ef6af3f540ffd14e50e87bca0f73a389 differ
diff --git a/test/de_fuzz/corpus/499ddc3e7343b1d03ef92cb0094ee577d32164ff b/test/de_fuzz/corpus/499ddc3e7343b1d03ef92cb0094ee577d32164ff
new file mode 100644
index 00000000..914940c7
Binary files /dev/null and b/test/de_fuzz/corpus/499ddc3e7343b1d03ef92cb0094ee577d32164ff differ
diff --git a/test/de_fuzz/corpus/49a14730811deb4e76c13a6a95f39b018f761eb2 b/test/de_fuzz/corpus/49a14730811deb4e76c13a6a95f39b018f761eb2
new file mode 100644
index 00000000..8514b095
Binary files /dev/null and b/test/de_fuzz/corpus/49a14730811deb4e76c13a6a95f39b018f761eb2 differ
diff --git a/test/de_fuzz/corpus/49b29b71e67aa0d9cc9493e33e707bd3fa4e807c b/test/de_fuzz/corpus/49b29b71e67aa0d9cc9493e33e707bd3fa4e807c
new file mode 100644
index 00000000..f4bac267
Binary files /dev/null and b/test/de_fuzz/corpus/49b29b71e67aa0d9cc9493e33e707bd3fa4e807c differ
diff --git a/test/de_fuzz/corpus/49b39aa9dcbb01dc701dcb12a26c316723b98c75 b/test/de_fuzz/corpus/49b39aa9dcbb01dc701dcb12a26c316723b98c75
new file mode 100644
index 00000000..0b1cdd44
Binary files /dev/null and b/test/de_fuzz/corpus/49b39aa9dcbb01dc701dcb12a26c316723b98c75 differ
diff --git a/test/de_fuzz/corpus/49d4247f87c530397ea52a3b4ab882fa2d48216b b/test/de_fuzz/corpus/49d4247f87c530397ea52a3b4ab882fa2d48216b
new file mode 100644
index 00000000..92fb22ab
Binary files /dev/null and b/test/de_fuzz/corpus/49d4247f87c530397ea52a3b4ab882fa2d48216b differ
diff --git a/test/de_fuzz/corpus/4a200c16161e28bedf8c22221f84bf1c39eb1e6d b/test/de_fuzz/corpus/4a200c16161e28bedf8c22221f84bf1c39eb1e6d
new file mode 100644
index 00000000..4f9314a5
Binary files /dev/null and b/test/de_fuzz/corpus/4a200c16161e28bedf8c22221f84bf1c39eb1e6d differ
diff --git a/test/de_fuzz/corpus/4a284cbfca79d43360bb88b05d36f7867a211bd1 b/test/de_fuzz/corpus/4a284cbfca79d43360bb88b05d36f7867a211bd1
new file mode 100644
index 00000000..2f4d49c0
Binary files /dev/null and b/test/de_fuzz/corpus/4a284cbfca79d43360bb88b05d36f7867a211bd1 differ
diff --git a/test/de_fuzz/corpus/4a4959efdf0836c71d6ddcd1a8c0a4d0642038bd b/test/de_fuzz/corpus/4a4959efdf0836c71d6ddcd1a8c0a4d0642038bd
new file mode 100644
index 00000000..30455826
Binary files /dev/null and b/test/de_fuzz/corpus/4a4959efdf0836c71d6ddcd1a8c0a4d0642038bd differ
diff --git a/test/de_fuzz/corpus/4a50e53173b497f1d8922a24655ec5b7cdd2265d b/test/de_fuzz/corpus/4a50e53173b497f1d8922a24655ec5b7cdd2265d
new file mode 100644
index 00000000..68a2ccb5
Binary files /dev/null and b/test/de_fuzz/corpus/4a50e53173b497f1d8922a24655ec5b7cdd2265d differ
diff --git a/test/de_fuzz/corpus/4a8a1648a551abb7ebcdcac3edd4a6e2fbcfacc4 b/test/de_fuzz/corpus/4a8a1648a551abb7ebcdcac3edd4a6e2fbcfacc4
new file mode 100644
index 00000000..a5977d9a
--- /dev/null
+++ b/test/de_fuzz/corpus/4a8a1648a551abb7ebcdcac3edd4a6e2fbcfacc4
@@ -0,0 +1,105 @@
+'è (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* # optional leading comment
+(?: (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+) # initial word
+(?: (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+) )* # further okay, if led by a period
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* @ (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: # if led by a period...
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,[[.NUL.]]]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # ...further okay
+)*
+)* # further okay, if led by comma
+: # closing colon
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* )? # optional route
+(?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+) # initial word
+(?: (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+) )* # further okay, if led by a period
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* @ (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # initial subdomain
+(?: #
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. # if led by a period...
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\04²)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # ...further okay
+)*
+# address spec
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] ^ | \\[\x80-\xff] )* \) )*
+\) )* > # trailing >
+# name and address
+) (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* # optional trailing comment
+
+
\ No newline at end of file
diff --git a/test/de_fuzz/corpus/4aefbfddfae2f93bacb762935a9412ad1c3eb233 b/test/de_fuzz/corpus/4aefbfddfae2f93bacb762935a9412ad1c3eb233
new file mode 100644
index 00000000..abbe7501
Binary files /dev/null and b/test/de_fuzz/corpus/4aefbfddfae2f93bacb762935a9412ad1c3eb233 differ
diff --git a/test/de_fuzz/corpus/4b27455bffc0dee4bbdd44dc44be9580df8a55a4 b/test/de_fuzz/corpus/4b27455bffc0dee4bbdd44dc44be9580df8a55a4
new file mode 100644
index 00000000..d9f25a17
Binary files /dev/null and b/test/de_fuzz/corpus/4b27455bffc0dee4bbdd44dc44be9580df8a55a4 differ
diff --git a/test/de_fuzz/corpus/4b5e937c9f364401535944fcb44156082d2cf337 b/test/de_fuzz/corpus/4b5e937c9f364401535944fcb44156082d2cf337
new file mode 100644
index 00000000..135b733d
Binary files /dev/null and b/test/de_fuzz/corpus/4b5e937c9f364401535944fcb44156082d2cf337 differ
diff --git a/test/de_fuzz/corpus/4b6c865558d9c7fd9c97a99885c45e082c17ad17 b/test/de_fuzz/corpus/4b6c865558d9c7fd9c97a99885c45e082c17ad17
new file mode 100644
index 00000000..2f6486ea
Binary files /dev/null and b/test/de_fuzz/corpus/4b6c865558d9c7fd9c97a99885c45e082c17ad17 differ
diff --git a/test/de_fuzz/corpus/4b6ccc4e378fca7f5ef53ff5ced6a820283971b6 b/test/de_fuzz/corpus/4b6ccc4e378fca7f5ef53ff5ced6a820283971b6
new file mode 100644
index 00000000..92a97c68
Binary files /dev/null and b/test/de_fuzz/corpus/4b6ccc4e378fca7f5ef53ff5ced6a820283971b6 differ
diff --git a/test/de_fuzz/corpus/4b81524f7cab697a2d21bb74118c6ef556446480 b/test/de_fuzz/corpus/4b81524f7cab697a2d21bb74118c6ef556446480
new file mode 100644
index 00000000..141d9b4b
Binary files /dev/null and b/test/de_fuzz/corpus/4b81524f7cab697a2d21bb74118c6ef556446480 differ
diff --git a/test/de_fuzz/corpus/4b90067d416da49cb3276f6fbcdbe5d336d69f11 b/test/de_fuzz/corpus/4b90067d416da49cb3276f6fbcdbe5d336d69f11
new file mode 100644
index 00000000..335989bd
Binary files /dev/null and b/test/de_fuzz/corpus/4b90067d416da49cb3276f6fbcdbe5d336d69f11 differ
diff --git a/test/de_fuzz/corpus/4ba4a9c2d4434148c3239a5b84dea262e211b143 b/test/de_fuzz/corpus/4ba4a9c2d4434148c3239a5b84dea262e211b143
new file mode 100644
index 00000000..25bb9212
Binary files /dev/null and b/test/de_fuzz/corpus/4ba4a9c2d4434148c3239a5b84dea262e211b143 differ
diff --git a/test/de_fuzz/corpus/4bba70ff0935880d8f05489c0582f9fcdf29dd6a b/test/de_fuzz/corpus/4bba70ff0935880d8f05489c0582f9fcdf29dd6a
new file mode 100644
index 00000000..78c09021
Binary files /dev/null and b/test/de_fuzz/corpus/4bba70ff0935880d8f05489c0582f9fcdf29dd6a differ
diff --git a/test/de_fuzz/corpus/4bbc8b068a8c78379e09c6cb90c9d296b04d1232 b/test/de_fuzz/corpus/4bbc8b068a8c78379e09c6cb90c9d296b04d1232
new file mode 100644
index 00000000..574c713e
Binary files /dev/null and b/test/de_fuzz/corpus/4bbc8b068a8c78379e09c6cb90c9d296b04d1232 differ
diff --git a/test/de_fuzz/corpus/4bdd8c7fc715940d9a6a4d2216b68ea6ce2d29b5 b/test/de_fuzz/corpus/4bdd8c7fc715940d9a6a4d2216b68ea6ce2d29b5
new file mode 100644
index 00000000..5ad38ca5
Binary files /dev/null and b/test/de_fuzz/corpus/4bdd8c7fc715940d9a6a4d2216b68ea6ce2d29b5 differ
diff --git a/test/de_fuzz/corpus/4bf35e958ea148060b1e28ffaba8fd58144ec13d b/test/de_fuzz/corpus/4bf35e958ea148060b1e28ffaba8fd58144ec13d
new file mode 100644
index 00000000..ee58720f
Binary files /dev/null and b/test/de_fuzz/corpus/4bf35e958ea148060b1e28ffaba8fd58144ec13d differ
diff --git a/test/de_fuzz/corpus/4c07bce306be9c6a00c3a1c6a48a066c03cbbcb8 b/test/de_fuzz/corpus/4c07bce306be9c6a00c3a1c6a48a066c03cbbcb8
new file mode 100644
index 00000000..8f0c3614
Binary files /dev/null and b/test/de_fuzz/corpus/4c07bce306be9c6a00c3a1c6a48a066c03cbbcb8 differ
diff --git a/test/de_fuzz/corpus/4c15781e5e573886c4a02f13f7b348e2f50ef2a4 b/test/de_fuzz/corpus/4c15781e5e573886c4a02f13f7b348e2f50ef2a4
new file mode 100644
index 00000000..ef3d245c
--- /dev/null
+++ b/test/de_fuzz/corpus/4c15781e5e573886c4a02f13f7b348e2f50ef2a4
@@ -0,0 +1,193 @@
+'è (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* # optional leading comment
+(?: (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+) # initial word
+(?: (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x-80\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+) )* # further okay, if led by a period
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* @ (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # initial subdomain
+(?: #
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. # if led by a period...
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # ...further okay
+)*
+# address
+| # or
+(?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+) # one word, optionally followed by....
+(?:
+[^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037] | # atom and space parts, or...
+\(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) | # comments, or...
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+# quoted strings
+)*
+< (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* # leading <
+(?: @ (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # initial subdomain
+(?: #
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. # if led by a period...
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # ...further okay
+)*
+(?: (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* , (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* @ (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # initial subdomain
+(?: #
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. # if led by a period...
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # ...further okay
+)*
+)* # further okay, if led by comma
+: # closing colon
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* )? # optional route
+(?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+) # initial word
+(?: (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quKte...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+) )* # further okay, if led by a period
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* @ (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # initial subdomain
+(?: #
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. # if led by a period...
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # ...further okay
+)*
+# address spec
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* > # trailing >
+# name and address
+) (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* # optional trailing comment
+
+
\ No newline at end of file
diff --git a/test/de_fuzz/corpus/4c3837515d900a8ed92b9a69b04c3f4b8eabdf49 b/test/de_fuzz/corpus/4c3837515d900a8ed92b9a69b04c3f4b8eabdf49
new file mode 100644
index 00000000..f562809c
Binary files /dev/null and b/test/de_fuzz/corpus/4c3837515d900a8ed92b9a69b04c3f4b8eabdf49 differ
diff --git a/test/de_fuzz/corpus/4c3e6bbf27639a2189d08872442733726a82ef18 b/test/de_fuzz/corpus/4c3e6bbf27639a2189d08872442733726a82ef18
new file mode 100644
index 00000000..453cc4c8
Binary files /dev/null and b/test/de_fuzz/corpus/4c3e6bbf27639a2189d08872442733726a82ef18 differ
diff --git a/test/de_fuzz/corpus/4c4843d4b2878dfc444e81511c8a07db7e3d67e1 b/test/de_fuzz/corpus/4c4843d4b2878dfc444e81511c8a07db7e3d67e1
new file mode 100644
index 00000000..48abe961
Binary files /dev/null and b/test/de_fuzz/corpus/4c4843d4b2878dfc444e81511c8a07db7e3d67e1 differ
diff --git a/test/de_fuzz/corpus/4c64b59cd992fc6fb30951b88b5ccaabe029eeea b/test/de_fuzz/corpus/4c64b59cd992fc6fb30951b88b5ccaabe029eeea
new file mode 100644
index 00000000..2d41d955
Binary files /dev/null and b/test/de_fuzz/corpus/4c64b59cd992fc6fb30951b88b5ccaabe029eeea differ
diff --git a/test/de_fuzz/corpus/4ca38c1d1d6215fdd7444442a074ef965c8eb938 b/test/de_fuzz/corpus/4ca38c1d1d6215fdd7444442a074ef965c8eb938
new file mode 100644
index 00000000..8d3e662c
Binary files /dev/null and b/test/de_fuzz/corpus/4ca38c1d1d6215fdd7444442a074ef965c8eb938 differ
diff --git a/test/de_fuzz/corpus/4cbfef63f80d7d2e48fada8084004158c09fc20c b/test/de_fuzz/corpus/4cbfef63f80d7d2e48fada8084004158c09fc20c
new file mode 100644
index 00000000..d0b4aab4
Binary files /dev/null and b/test/de_fuzz/corpus/4cbfef63f80d7d2e48fada8084004158c09fc20c differ
diff --git a/test/de_fuzz/corpus/4cf4d09f7ba77473cbb879922099c0522bd5a2ca b/test/de_fuzz/corpus/4cf4d09f7ba77473cbb879922099c0522bd5a2ca
new file mode 100644
index 00000000..c01e3487
Binary files /dev/null and b/test/de_fuzz/corpus/4cf4d09f7ba77473cbb879922099c0522bd5a2ca differ
diff --git a/test/de_fuzz/corpus/4d3085ea5b7776070fe46911b1e25e29a8217b16 b/test/de_fuzz/corpus/4d3085ea5b7776070fe46911b1e25e29a8217b16
new file mode 100644
index 00000000..e127c0db
Binary files /dev/null and b/test/de_fuzz/corpus/4d3085ea5b7776070fe46911b1e25e29a8217b16 differ
diff --git a/test/de_fuzz/corpus/4d3daaa2d95490c04de3fcf52189389300066fa7 b/test/de_fuzz/corpus/4d3daaa2d95490c04de3fcf52189389300066fa7
new file mode 100644
index 00000000..f87db976
Binary files /dev/null and b/test/de_fuzz/corpus/4d3daaa2d95490c04de3fcf52189389300066fa7 differ
diff --git a/test/de_fuzz/corpus/4d5708826a418c4c60a72fb71d850b6a7540c589 b/test/de_fuzz/corpus/4d5708826a418c4c60a72fb71d850b6a7540c589
new file mode 100644
index 00000000..70f24eaa
Binary files /dev/null and b/test/de_fuzz/corpus/4d5708826a418c4c60a72fb71d850b6a7540c589 differ
diff --git a/test/de_fuzz/corpus/4d60a4099782c383637f38811b630fb45d25f08e b/test/de_fuzz/corpus/4d60a4099782c383637f38811b630fb45d25f08e
new file mode 100644
index 00000000..71f5da20
Binary files /dev/null and b/test/de_fuzz/corpus/4d60a4099782c383637f38811b630fb45d25f08e differ
diff --git a/test/de_fuzz/corpus/4d73a434fcb5d942fbbf46977352029c5252f970 b/test/de_fuzz/corpus/4d73a434fcb5d942fbbf46977352029c5252f970
new file mode 100644
index 00000000..c165977f
Binary files /dev/null and b/test/de_fuzz/corpus/4d73a434fcb5d942fbbf46977352029c5252f970 differ
diff --git a/test/de_fuzz/corpus/4d76216c957eff61a17c0d0ea0cd56394b4893e3 b/test/de_fuzz/corpus/4d76216c957eff61a17c0d0ea0cd56394b4893e3
new file mode 100644
index 00000000..6e44a031
Binary files /dev/null and b/test/de_fuzz/corpus/4d76216c957eff61a17c0d0ea0cd56394b4893e3 differ
diff --git a/test/de_fuzz/corpus/4d779f97f6e4de55dac696136edce3d98377265d b/test/de_fuzz/corpus/4d779f97f6e4de55dac696136edce3d98377265d
new file mode 100644
index 00000000..ac08707c
Binary files /dev/null and b/test/de_fuzz/corpus/4d779f97f6e4de55dac696136edce3d98377265d differ
diff --git a/test/de_fuzz/corpus/4da550bdb2900e5798b0edccc3486085b77c3237 b/test/de_fuzz/corpus/4da550bdb2900e5798b0edccc3486085b77c3237
new file mode 100644
index 00000000..bd2b3054
Binary files /dev/null and b/test/de_fuzz/corpus/4da550bdb2900e5798b0edccc3486085b77c3237 differ
diff --git a/test/de_fuzz/corpus/4db46c5e2d47696e681fb685ce344345c4e5a918 b/test/de_fuzz/corpus/4db46c5e2d47696e681fb685ce344345c4e5a918
new file mode 100644
index 00000000..d5c87f75
Binary files /dev/null and b/test/de_fuzz/corpus/4db46c5e2d47696e681fb685ce344345c4e5a918 differ
diff --git a/test/de_fuzz/corpus/4db8ecb28fd10624cb2024ec5c80fe801f15be82 b/test/de_fuzz/corpus/4db8ecb28fd10624cb2024ec5c80fe801f15be82
new file mode 100644
index 00000000..8127cf3c
Binary files /dev/null and b/test/de_fuzz/corpus/4db8ecb28fd10624cb2024ec5c80fe801f15be82 differ
diff --git a/test/de_fuzz/corpus/4dc8745bac021e358a9f5475289fd7bcf1c1ef97 b/test/de_fuzz/corpus/4dc8745bac021e358a9f5475289fd7bcf1c1ef97
new file mode 100644
index 00000000..ffae2fb6
Binary files /dev/null and b/test/de_fuzz/corpus/4dc8745bac021e358a9f5475289fd7bcf1c1ef97 differ
diff --git a/test/de_fuzz/corpus/4df5419a03ef0b4738a6a7774d8968af1c86496d b/test/de_fuzz/corpus/4df5419a03ef0b4738a6a7774d8968af1c86496d
new file mode 100644
index 00000000..de94baa8
Binary files /dev/null and b/test/de_fuzz/corpus/4df5419a03ef0b4738a6a7774d8968af1c86496d differ
diff --git a/test/de_fuzz/corpus/4e07c3372265ecf54bece8e01ab1bcaa42ee6820 b/test/de_fuzz/corpus/4e07c3372265ecf54bece8e01ab1bcaa42ee6820
new file mode 100644
index 00000000..e8999f63
Binary files /dev/null and b/test/de_fuzz/corpus/4e07c3372265ecf54bece8e01ab1bcaa42ee6820 differ
diff --git a/test/de_fuzz/corpus/4e4a273ee5ef1e5e9c328124b9e643ffe0e19694 b/test/de_fuzz/corpus/4e4a273ee5ef1e5e9c328124b9e643ffe0e19694
new file mode 100644
index 00000000..78dc17c1
Binary files /dev/null and b/test/de_fuzz/corpus/4e4a273ee5ef1e5e9c328124b9e643ffe0e19694 differ
diff --git a/test/de_fuzz/corpus/4e4eac5ea923a7df4651c80fbc30b684f44dbce7 b/test/de_fuzz/corpus/4e4eac5ea923a7df4651c80fbc30b684f44dbce7
new file mode 100644
index 00000000..c2d40173
Binary files /dev/null and b/test/de_fuzz/corpus/4e4eac5ea923a7df4651c80fbc30b684f44dbce7 differ
diff --git a/test/de_fuzz/corpus/4e53e9d440043d93a85db56e0c69d70c64da9eab b/test/de_fuzz/corpus/4e53e9d440043d93a85db56e0c69d70c64da9eab
new file mode 100644
index 00000000..766f1d04
Binary files /dev/null and b/test/de_fuzz/corpus/4e53e9d440043d93a85db56e0c69d70c64da9eab differ
diff --git a/test/de_fuzz/corpus/4e568d97f0d11ac1289f1449a86033e31ee27e56 b/test/de_fuzz/corpus/4e568d97f0d11ac1289f1449a86033e31ee27e56
new file mode 100644
index 00000000..4c6434c4
Binary files /dev/null and b/test/de_fuzz/corpus/4e568d97f0d11ac1289f1449a86033e31ee27e56 differ
diff --git a/test/de_fuzz/corpus/4e610c30f11191156dacc9c143f457686365c468 b/test/de_fuzz/corpus/4e610c30f11191156dacc9c143f457686365c468
new file mode 100644
index 00000000..778553bd
Binary files /dev/null and b/test/de_fuzz/corpus/4e610c30f11191156dacc9c143f457686365c468 differ
diff --git a/test/de_fuzz/corpus/4e749f064bcdb52f31b7994cacb0ddfd742850c8 b/test/de_fuzz/corpus/4e749f064bcdb52f31b7994cacb0ddfd742850c8
new file mode 100644
index 00000000..317bb5c1
Binary files /dev/null and b/test/de_fuzz/corpus/4e749f064bcdb52f31b7994cacb0ddfd742850c8 differ
diff --git a/test/de_fuzz/corpus/4e942e5b6db525e1e2eebeab9300a0565aea2fb2 b/test/de_fuzz/corpus/4e942e5b6db525e1e2eebeab9300a0565aea2fb2
new file mode 100644
index 00000000..7e771ee1
Binary files /dev/null and b/test/de_fuzz/corpus/4e942e5b6db525e1e2eebeab9300a0565aea2fb2 differ
diff --git a/test/de_fuzz/corpus/4ebd0c58ef52c6dbca20400d6e61bd31c1a95242 b/test/de_fuzz/corpus/4ebd0c58ef52c6dbca20400d6e61bd31c1a95242
new file mode 100644
index 00000000..0476138d
Binary files /dev/null and b/test/de_fuzz/corpus/4ebd0c58ef52c6dbca20400d6e61bd31c1a95242 differ
diff --git a/test/de_fuzz/corpus/4eca0c0033c40699309048c7de278ad4f7527c35 b/test/de_fuzz/corpus/4eca0c0033c40699309048c7de278ad4f7527c35
new file mode 100644
index 00000000..b6471b18
--- /dev/null
+++ b/test/de_fuzz/corpus/4eca0c0033c40699309048c7de278ad4f7527c35
@@ -0,0 +1 @@
+Z(((((((a+)+)+)+)+)+)+š+|Y((((()+)+|Y(((Ø××מÔÖÏ)+)+)+µµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµ)+)+)+|X(((((((a+)+)+)+)+)+)+)+|W(((((((a+)+)+)+)+)+)+)+;|V(((((?(DEFINE)(((a+)+)+)+)+)+)+)+|CZ(((((((a+)+)+)+)+)+)+)+|CY(((((((a+)+)+)+)+)+)+)+|CX(((((((a+)+)+)+)+)+)+)+|CW(((((((a+)+)+)+((((a+)+)+)+)+)+)+)+|CZ(((:(((a+)+)+)+)+)+)+)+|CY(((((((a+)+)+)+)+)+)+)+|CX(((((((a+)+)+)+)+)+)+)+|CW(((((('a+)+)+)+)+)+)+)+|CV,((((((a+)+)+)+)+)+|CX(((((((a+)+)+)+)+)+)+)+|CW(((((('a+)+)+)+)+)+)+)+|CV,((((((a+)+)+)+)+)+)+)+|(a+)+bc
\ No newline at end of file
diff --git a/test/de_fuzz/corpus/4ed034ae0dfee66bdfb79d65a3591f76958be9b6 b/test/de_fuzz/corpus/4ed034ae0dfee66bdfb79d65a3591f76958be9b6
new file mode 100644
index 00000000..1041c909
Binary files /dev/null and b/test/de_fuzz/corpus/4ed034ae0dfee66bdfb79d65a3591f76958be9b6 differ
diff --git a/test/de_fuzz/corpus/4eec96bfb8ef3ae17f85c0bb307c72243b963abe b/test/de_fuzz/corpus/4eec96bfb8ef3ae17f85c0bb307c72243b963abe
new file mode 100644
index 00000000..9cb74756
Binary files /dev/null and b/test/de_fuzz/corpus/4eec96bfb8ef3ae17f85c0bb307c72243b963abe differ
diff --git a/test/de_fuzz/corpus/4f2f2bbd12b6f9cd3e838337c71fa1478e5be08b b/test/de_fuzz/corpus/4f2f2bbd12b6f9cd3e838337c71fa1478e5be08b
new file mode 100644
index 00000000..ce4cf5b5
Binary files /dev/null and b/test/de_fuzz/corpus/4f2f2bbd12b6f9cd3e838337c71fa1478e5be08b differ
diff --git a/test/de_fuzz/corpus/4f5a1ed5038489f8343fe70febd2ab059d98a9a1 b/test/de_fuzz/corpus/4f5a1ed5038489f8343fe70febd2ab059d98a9a1
new file mode 100644
index 00000000..2cf11948
Binary files /dev/null and b/test/de_fuzz/corpus/4f5a1ed5038489f8343fe70febd2ab059d98a9a1 differ
diff --git a/test/de_fuzz/corpus/4f60aad000a14c2b2b2d4b43251f5899aee17dae b/test/de_fuzz/corpus/4f60aad000a14c2b2b2d4b43251f5899aee17dae
new file mode 100644
index 00000000..7b8f5bb6
Binary files /dev/null and b/test/de_fuzz/corpus/4f60aad000a14c2b2b2d4b43251f5899aee17dae differ
diff --git a/test/de_fuzz/corpus/4f8a778bec576db5cb67e2d993d638748ce1944a b/test/de_fuzz/corpus/4f8a778bec576db5cb67e2d993d638748ce1944a
new file mode 100644
index 00000000..bc3f6c2e
Binary files /dev/null and b/test/de_fuzz/corpus/4f8a778bec576db5cb67e2d993d638748ce1944a differ
diff --git a/test/de_fuzz/corpus/4fafc88be3b0a25137f6d8626b2c083bdae53b35 b/test/de_fuzz/corpus/4fafc88be3b0a25137f6d8626b2c083bdae53b35
new file mode 100644
index 00000000..aea3aba6
Binary files /dev/null and b/test/de_fuzz/corpus/4fafc88be3b0a25137f6d8626b2c083bdae53b35 differ
diff --git a/test/de_fuzz/corpus/4fbb18b3925aa4d1d8d551f0e00adfe5f0e70f16 b/test/de_fuzz/corpus/4fbb18b3925aa4d1d8d551f0e00adfe5f0e70f16
new file mode 100644
index 00000000..24b2bfaa
Binary files /dev/null and b/test/de_fuzz/corpus/4fbb18b3925aa4d1d8d551f0e00adfe5f0e70f16 differ
diff --git a/test/de_fuzz/corpus/4fe92f796e5224738870f10c86c073ddfd19f689 b/test/de_fuzz/corpus/4fe92f796e5224738870f10c86c073ddfd19f689
new file mode 100644
index 00000000..f274c333
Binary files /dev/null and b/test/de_fuzz/corpus/4fe92f796e5224738870f10c86c073ddfd19f689 differ
diff --git a/test/de_fuzz/corpus/5029bd79b308bd9184f9d4ba2a72a54abd78b829 b/test/de_fuzz/corpus/5029bd79b308bd9184f9d4ba2a72a54abd78b829
new file mode 100644
index 00000000..740f41be
Binary files /dev/null and b/test/de_fuzz/corpus/5029bd79b308bd9184f9d4ba2a72a54abd78b829 differ
diff --git a/test/de_fuzz/corpus/50b4acf8b24bad27e3f06455c075a182db0b6c6d b/test/de_fuzz/corpus/50b4acf8b24bad27e3f06455c075a182db0b6c6d
new file mode 100644
index 00000000..0bbdcb67
Binary files /dev/null and b/test/de_fuzz/corpus/50b4acf8b24bad27e3f06455c075a182db0b6c6d differ
diff --git a/test/de_fuzz/corpus/50c0a2bd85e9c4b6eda34b4fed669468e3a5c918 b/test/de_fuzz/corpus/50c0a2bd85e9c4b6eda34b4fed669468e3a5c918
new file mode 100644
index 00000000..662f9549
Binary files /dev/null and b/test/de_fuzz/corpus/50c0a2bd85e9c4b6eda34b4fed669468e3a5c918 differ
diff --git a/test/de_fuzz/corpus/50ce6dd4e00747c2b2004b6578739b7c76d8d1d3 b/test/de_fuzz/corpus/50ce6dd4e00747c2b2004b6578739b7c76d8d1d3
new file mode 100644
index 00000000..03763f2d
Binary files /dev/null and b/test/de_fuzz/corpus/50ce6dd4e00747c2b2004b6578739b7c76d8d1d3 differ
diff --git a/test/de_fuzz/corpus/50e1d296690aafa415d9347940dfed151104e614 b/test/de_fuzz/corpus/50e1d296690aafa415d9347940dfed151104e614
new file mode 100644
index 00000000..9b297d04
Binary files /dev/null and b/test/de_fuzz/corpus/50e1d296690aafa415d9347940dfed151104e614 differ
diff --git a/test/de_fuzz/corpus/50fb2f1bda260fefb5fbfb087083d00bf16f04a7 b/test/de_fuzz/corpus/50fb2f1bda260fefb5fbfb087083d00bf16f04a7
new file mode 100644
index 00000000..969d3b56
Binary files /dev/null and b/test/de_fuzz/corpus/50fb2f1bda260fefb5fbfb087083d00bf16f04a7 differ
diff --git a/test/de_fuzz/corpus/50fdf4f93ec6352a67a61661a1a7721ce8512e12 b/test/de_fuzz/corpus/50fdf4f93ec6352a67a61661a1a7721ce8512e12
new file mode 100644
index 00000000..9c5a98aa
Binary files /dev/null and b/test/de_fuzz/corpus/50fdf4f93ec6352a67a61661a1a7721ce8512e12 differ
diff --git a/test/de_fuzz/corpus/510108f4b0c4e652407e5afd337da5bcb4eb7dfb b/test/de_fuzz/corpus/510108f4b0c4e652407e5afd337da5bcb4eb7dfb
new file mode 100644
index 00000000..c2fed645
Binary files /dev/null and b/test/de_fuzz/corpus/510108f4b0c4e652407e5afd337da5bcb4eb7dfb differ
diff --git a/test/de_fuzz/corpus/5105be76ee07c4ac286b047ff86efffe691f597a b/test/de_fuzz/corpus/5105be76ee07c4ac286b047ff86efffe691f597a
new file mode 100644
index 00000000..929c39a3
Binary files /dev/null and b/test/de_fuzz/corpus/5105be76ee07c4ac286b047ff86efffe691f597a differ
diff --git a/test/de_fuzz/corpus/510a04584dacf067b37f1465f61765c8c4f5c3f8 b/test/de_fuzz/corpus/510a04584dacf067b37f1465f61765c8c4f5c3f8
new file mode 100644
index 00000000..a28891f8
Binary files /dev/null and b/test/de_fuzz/corpus/510a04584dacf067b37f1465f61765c8c4f5c3f8 differ
diff --git a/test/de_fuzz/corpus/5114c61da2d4192659867bbd57c24b4c7d7e790a b/test/de_fuzz/corpus/5114c61da2d4192659867bbd57c24b4c7d7e790a
new file mode 100644
index 00000000..0ede4624
Binary files /dev/null and b/test/de_fuzz/corpus/5114c61da2d4192659867bbd57c24b4c7d7e790a differ
diff --git a/test/de_fuzz/corpus/5119ad0cdc5269a1ec186bf6859b64538331a415 b/test/de_fuzz/corpus/5119ad0cdc5269a1ec186bf6859b64538331a415
new file mode 100644
index 00000000..8dd72dcb
--- /dev/null
+++ b/test/de_fuzz/corpus/5119ad0cdc5269a1ec186bf6859b64538331a415
@@ -0,0 +1,2 @@
+8^\l*(?:((.*?)\W*(?1)\W*{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{
+
\ No newline at end of file
diff --git a/test/de_fuzz/corpus/513e4fd04606fb87a937be531fb068fad76e59ab b/test/de_fuzz/corpus/513e4fd04606fb87a937be531fb068fad76e59ab
new file mode 100644
index 00000000..8411ae07
Binary files /dev/null and b/test/de_fuzz/corpus/513e4fd04606fb87a937be531fb068fad76e59ab differ
diff --git a/test/de_fuzz/corpus/5144764b2609997c07767bf42e1ff41cdd9fd791 b/test/de_fuzz/corpus/5144764b2609997c07767bf42e1ff41cdd9fd791
new file mode 100644
index 00000000..6e789b74
Binary files /dev/null and b/test/de_fuzz/corpus/5144764b2609997c07767bf42e1ff41cdd9fd791 differ
diff --git a/test/de_fuzz/corpus/5149fc74c1b871e372bb50ef9410a73f053459b9 b/test/de_fuzz/corpus/5149fc74c1b871e372bb50ef9410a73f053459b9
new file mode 100644
index 00000000..8ac0e900
Binary files /dev/null and b/test/de_fuzz/corpus/5149fc74c1b871e372bb50ef9410a73f053459b9 differ
diff --git a/test/de_fuzz/corpus/51a8264d59b38368dea844b8e84b3e925695a551 b/test/de_fuzz/corpus/51a8264d59b38368dea844b8e84b3e925695a551
new file mode 100644
index 00000000..b2defb0e
Binary files /dev/null and b/test/de_fuzz/corpus/51a8264d59b38368dea844b8e84b3e925695a551 differ
diff --git a/test/de_fuzz/corpus/51c43d7ca883200f5c03de198d8e4d0b661fdd9d b/test/de_fuzz/corpus/51c43d7ca883200f5c03de198d8e4d0b661fdd9d
new file mode 100644
index 00000000..83cca9e9
Binary files /dev/null and b/test/de_fuzz/corpus/51c43d7ca883200f5c03de198d8e4d0b661fdd9d differ
diff --git a/test/de_fuzz/corpus/51c9b83b166827e49bf4fd6f8035b08b4da524b7 b/test/de_fuzz/corpus/51c9b83b166827e49bf4fd6f8035b08b4da524b7
new file mode 100644
index 00000000..60409070
Binary files /dev/null and b/test/de_fuzz/corpus/51c9b83b166827e49bf4fd6f8035b08b4da524b7 differ
diff --git a/test/de_fuzz/corpus/51e6b9b80bbdb436e999cf5cb7b4232d04ad7f51 b/test/de_fuzz/corpus/51e6b9b80bbdb436e999cf5cb7b4232d04ad7f51
new file mode 100644
index 00000000..04bb7f40
Binary files /dev/null and b/test/de_fuzz/corpus/51e6b9b80bbdb436e999cf5cb7b4232d04ad7f51 differ
diff --git a/test/de_fuzz/corpus/522c33896984191d1818ab08e6b33a1bc64b19cb b/test/de_fuzz/corpus/522c33896984191d1818ab08e6b33a1bc64b19cb
new file mode 100644
index 00000000..dbc93449
Binary files /dev/null and b/test/de_fuzz/corpus/522c33896984191d1818ab08e6b33a1bc64b19cb differ
diff --git a/test/de_fuzz/corpus/5275279978b413b5ae68560bbfd98047412953c6 b/test/de_fuzz/corpus/5275279978b413b5ae68560bbfd98047412953c6
new file mode 100644
index 00000000..77f1aeef
Binary files /dev/null and b/test/de_fuzz/corpus/5275279978b413b5ae68560bbfd98047412953c6 differ
diff --git a/test/de_fuzz/corpus/52791612d5528269899e00b8c9d80eeba8277eec b/test/de_fuzz/corpus/52791612d5528269899e00b8c9d80eeba8277eec
new file mode 100644
index 00000000..07de2bb2
Binary files /dev/null and b/test/de_fuzz/corpus/52791612d5528269899e00b8c9d80eeba8277eec differ
diff --git a/test/de_fuzz/corpus/5290ebc1ce72fc327b27932c87ad1eb43abc401b b/test/de_fuzz/corpus/5290ebc1ce72fc327b27932c87ad1eb43abc401b
new file mode 100644
index 00000000..b274e045
Binary files /dev/null and b/test/de_fuzz/corpus/5290ebc1ce72fc327b27932c87ad1eb43abc401b differ
diff --git a/test/de_fuzz/corpus/52b97378649b4e434d4cf1c749d48bd3709a436d b/test/de_fuzz/corpus/52b97378649b4e434d4cf1c749d48bd3709a436d
new file mode 100644
index 00000000..692c33aa
Binary files /dev/null and b/test/de_fuzz/corpus/52b97378649b4e434d4cf1c749d48bd3709a436d differ
diff --git a/test/de_fuzz/corpus/52fb03b1e39c7cca71354d0ae1a99bf1a08b66e0 b/test/de_fuzz/corpus/52fb03b1e39c7cca71354d0ae1a99bf1a08b66e0
new file mode 100644
index 00000000..057c6499
Binary files /dev/null and b/test/de_fuzz/corpus/52fb03b1e39c7cca71354d0ae1a99bf1a08b66e0 differ
diff --git a/test/de_fuzz/corpus/53509167b48d5e6dda9b466c40dbe89589c6fff0 b/test/de_fuzz/corpus/53509167b48d5e6dda9b466c40dbe89589c6fff0
new file mode 100644
index 00000000..7ca39563
Binary files /dev/null and b/test/de_fuzz/corpus/53509167b48d5e6dda9b466c40dbe89589c6fff0 differ
diff --git a/test/de_fuzz/corpus/536e203dabfaf83faf13d24feb2a9c8b318afaed b/test/de_fuzz/corpus/536e203dabfaf83faf13d24feb2a9c8b318afaed
new file mode 100644
index 00000000..f0acb51a
Binary files /dev/null and b/test/de_fuzz/corpus/536e203dabfaf83faf13d24feb2a9c8b318afaed differ
diff --git a/test/de_fuzz/corpus/5397275b10c5aa9cd23d0d99f75978ba7be24f98 b/test/de_fuzz/corpus/5397275b10c5aa9cd23d0d99f75978ba7be24f98
new file mode 100644
index 00000000..2563d25c
Binary files /dev/null and b/test/de_fuzz/corpus/5397275b10c5aa9cd23d0d99f75978ba7be24f98 differ
diff --git a/test/de_fuzz/corpus/53a0b7972b964ba863fb3ce391ae5c4c346fc404 b/test/de_fuzz/corpus/53a0b7972b964ba863fb3ce391ae5c4c346fc404
new file mode 100644
index 00000000..fa313880
Binary files /dev/null and b/test/de_fuzz/corpus/53a0b7972b964ba863fb3ce391ae5c4c346fc404 differ
diff --git a/test/de_fuzz/corpus/53a0f768aade124eb8cae2f1969ec5ea3c8b1612 b/test/de_fuzz/corpus/53a0f768aade124eb8cae2f1969ec5ea3c8b1612
new file mode 100644
index 00000000..a3d6a2f3
Binary files /dev/null and b/test/de_fuzz/corpus/53a0f768aade124eb8cae2f1969ec5ea3c8b1612 differ
diff --git a/test/de_fuzz/corpus/53f33697da5f1555534445ad6587cc56d309f10f b/test/de_fuzz/corpus/53f33697da5f1555534445ad6587cc56d309f10f
new file mode 100644
index 00000000..c4115024
Binary files /dev/null and b/test/de_fuzz/corpus/53f33697da5f1555534445ad6587cc56d309f10f differ
diff --git a/test/de_fuzz/corpus/542e4abcd003a90583e44b818652786834e486c8 b/test/de_fuzz/corpus/542e4abcd003a90583e44b818652786834e486c8
new file mode 100644
index 00000000..cbff22ac
Binary files /dev/null and b/test/de_fuzz/corpus/542e4abcd003a90583e44b818652786834e486c8 differ
diff --git a/test/de_fuzz/corpus/54aa02ad34e12d88b1c841fd0dc1310fc7c2b418 b/test/de_fuzz/corpus/54aa02ad34e12d88b1c841fd0dc1310fc7c2b418
new file mode 100644
index 00000000..e68eaf6f
Binary files /dev/null and b/test/de_fuzz/corpus/54aa02ad34e12d88b1c841fd0dc1310fc7c2b418 differ
diff --git a/test/de_fuzz/corpus/54dc119c94f76c391f13d0ee5f42025984c46b82 b/test/de_fuzz/corpus/54dc119c94f76c391f13d0ee5f42025984c46b82
new file mode 100644
index 00000000..81fd7d42
Binary files /dev/null and b/test/de_fuzz/corpus/54dc119c94f76c391f13d0ee5f42025984c46b82 differ
diff --git a/test/de_fuzz/corpus/54e76cfc7944b192d54dc3617db25af6009b69bd b/test/de_fuzz/corpus/54e76cfc7944b192d54dc3617db25af6009b69bd
new file mode 100644
index 00000000..1fe69d29
--- /dev/null
+++ b/test/de_fuzz/corpus/54e76cfc7944b192d54dc3617db25af6009b69bd
@@ -0,0 +1 @@
+Z(((((((a+)+)+)+)+)+)+)+|Y(((((((a+)+)+)++)+)+)+|CY(((((((a+)+)+)+)+)+)+)+|CX(((((((a+)+)+)+)+)+)+)+|CW(((((((a+)+)+)+)+)+)+)+|CV(((((((a+)+)+)+)+)+)+)+|!a+)+bc
\ No newline at end of file
diff --git a/test/de_fuzz/corpus/54f21afd9856985428c9fd1f71ddefd99cc13632 b/test/de_fuzz/corpus/54f21afd9856985428c9fd1f71ddefd99cc13632
new file mode 100644
index 00000000..bbae9910
Binary files /dev/null and b/test/de_fuzz/corpus/54f21afd9856985428c9fd1f71ddefd99cc13632 differ
diff --git a/test/de_fuzz/corpus/54f47f36ff658e5990366bf383f1815d44590027 b/test/de_fuzz/corpus/54f47f36ff658e5990366bf383f1815d44590027
new file mode 100644
index 00000000..30d8c806
Binary files /dev/null and b/test/de_fuzz/corpus/54f47f36ff658e5990366bf383f1815d44590027 differ
diff --git a/test/de_fuzz/corpus/54fe79606193fb90794c4915f0c8f4e9e0c59ed3 b/test/de_fuzz/corpus/54fe79606193fb90794c4915f0c8f4e9e0c59ed3
new file mode 100644
index 00000000..17745088
Binary files /dev/null and b/test/de_fuzz/corpus/54fe79606193fb90794c4915f0c8f4e9e0c59ed3 differ
diff --git a/test/de_fuzz/corpus/550ba64d8a00a5c705be1e27fe92ebf2d40e6834 b/test/de_fuzz/corpus/550ba64d8a00a5c705be1e27fe92ebf2d40e6834
new file mode 100644
index 00000000..4b37ff9b
Binary files /dev/null and b/test/de_fuzz/corpus/550ba64d8a00a5c705be1e27fe92ebf2d40e6834 differ
diff --git a/test/de_fuzz/corpus/5525b17b16476958a805a4183b22957b1d9af642 b/test/de_fuzz/corpus/5525b17b16476958a805a4183b22957b1d9af642
new file mode 100644
index 00000000..90a546da
Binary files /dev/null and b/test/de_fuzz/corpus/5525b17b16476958a805a4183b22957b1d9af642 differ
diff --git a/test/de_fuzz/corpus/552d1fed48bf843cb2f8bea8e540040c5965e2cd b/test/de_fuzz/corpus/552d1fed48bf843cb2f8bea8e540040c5965e2cd
new file mode 100644
index 00000000..eafa7904
Binary files /dev/null and b/test/de_fuzz/corpus/552d1fed48bf843cb2f8bea8e540040c5965e2cd differ
diff --git a/test/de_fuzz/corpus/553b174f5e1767e0c0626ec26c5fc8f89a63b950 b/test/de_fuzz/corpus/553b174f5e1767e0c0626ec26c5fc8f89a63b950
new file mode 100644
index 00000000..803b09cc
Binary files /dev/null and b/test/de_fuzz/corpus/553b174f5e1767e0c0626ec26c5fc8f89a63b950 differ
diff --git a/test/de_fuzz/corpus/55458480cd74abaf7b24d76caa7230955f082e7a b/test/de_fuzz/corpus/55458480cd74abaf7b24d76caa7230955f082e7a
new file mode 100644
index 00000000..23c5a0fc
Binary files /dev/null and b/test/de_fuzz/corpus/55458480cd74abaf7b24d76caa7230955f082e7a differ
diff --git a/test/de_fuzz/corpus/555b76b4e05ec98602f729d535043596ced5dc24 b/test/de_fuzz/corpus/555b76b4e05ec98602f729d535043596ced5dc24
new file mode 100644
index 00000000..2b712bbb
Binary files /dev/null and b/test/de_fuzz/corpus/555b76b4e05ec98602f729d535043596ced5dc24 differ
diff --git a/test/de_fuzz/corpus/55829f61b65b2acd08fef3a6703ffcb99df41a0c b/test/de_fuzz/corpus/55829f61b65b2acd08fef3a6703ffcb99df41a0c
new file mode 100644
index 00000000..31bbefe0
--- /dev/null
+++ b/test/de_fuzz/corpus/55829f61b65b2acd08fef3a6703ffcb99df41a0c
@@ -0,0 +1,184 @@
+'è (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* # optional leading comment
+(?: (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+) # initial word
+(?: (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] itial subdomain
+(?: #
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. # if led by a period...
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # ...further okay
+)*
+(?: (?: [\041\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* , (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ial subdomain
+(?: #
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. # if led by a period...
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # ...further okay
+)*
+)* # further okay, if led by comma
+: # closing colon
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* )? # optional route
+(?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+) # initial word
+(?: (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atfm
+|
+"ept backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+) # initial word
+(?: (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] itial subdomain
+(?: #
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. # if led by a period...
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # ...further okay
+)*
+(?: (?: [\041\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* , (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ial subdomain
+(?: #
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. # if led by a period...
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # ...further okay
+)*
+)* # further okay, if led by comma
+: # closing colon
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* )? # optional route
+(?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+) # initial word
+(?: (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+) )* # further okay, if led by a period
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* @ (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # initial subdomain
+(?: #
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. # if led by a period...
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # ...further okay
+)*
+# address spec
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* > # trailing >
+# name and address
+) (?: [\039\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* # optional trailing comment
+
+
\ No newline at end of file
diff --git a/test/de_fuzz/corpus/55ca55fbb3328bfb4bc78482195daa6a2f868823 b/test/de_fuzz/corpus/55ca55fbb3328bfb4bc78482195daa6a2f868823
new file mode 100644
index 00000000..925b3dbd
Binary files /dev/null and b/test/de_fuzz/corpus/55ca55fbb3328bfb4bc78482195daa6a2f868823 differ
diff --git a/test/de_fuzz/corpus/55d7ba58f07f5d4c3f2da5e2d6a2ff282740c523 b/test/de_fuzz/corpus/55d7ba58f07f5d4c3f2da5e2d6a2ff282740c523
new file mode 100644
index 00000000..e1586a7c
Binary files /dev/null and b/test/de_fuzz/corpus/55d7ba58f07f5d4c3f2da5e2d6a2ff282740c523 differ
diff --git a/test/de_fuzz/corpus/55f98a4b9a4d02c5ab4b46378b6f7f327e795e33 b/test/de_fuzz/corpus/55f98a4b9a4d02c5ab4b46378b6f7f327e795e33
new file mode 100644
index 00000000..6f31f15d
Binary files /dev/null and b/test/de_fuzz/corpus/55f98a4b9a4d02c5ab4b46378b6f7f327e795e33 differ
diff --git a/test/de_fuzz/corpus/560e7ffb46295a2c17d25b15ba76c4d9b5747b68 b/test/de_fuzz/corpus/560e7ffb46295a2c17d25b15ba76c4d9b5747b68
new file mode 100644
index 00000000..f82d094d
Binary files /dev/null and b/test/de_fuzz/corpus/560e7ffb46295a2c17d25b15ba76c4d9b5747b68 differ
diff --git a/test/de_fuzz/corpus/56118adfd960ae816c24846abb70662b6e561491 b/test/de_fuzz/corpus/56118adfd960ae816c24846abb70662b6e561491
new file mode 100644
index 00000000..46ca58ec
Binary files /dev/null and b/test/de_fuzz/corpus/56118adfd960ae816c24846abb70662b6e561491 differ
diff --git a/test/de_fuzz/corpus/562b4b049f2742b83ef52766da847ae695753df5 b/test/de_fuzz/corpus/562b4b049f2742b83ef52766da847ae695753df5
new file mode 100644
index 00000000..715e01ee
Binary files /dev/null and b/test/de_fuzz/corpus/562b4b049f2742b83ef52766da847ae695753df5 differ
diff --git a/test/de_fuzz/corpus/563d778847b9f9a2c09b67d246115350093b8b5a b/test/de_fuzz/corpus/563d778847b9f9a2c09b67d246115350093b8b5a
new file mode 100644
index 00000000..2a05e89f
Binary files /dev/null and b/test/de_fuzz/corpus/563d778847b9f9a2c09b67d246115350093b8b5a differ
diff --git a/test/de_fuzz/corpus/567c8143f42a568bf2df66883883e1782d274c2e b/test/de_fuzz/corpus/567c8143f42a568bf2df66883883e1782d274c2e
new file mode 100644
index 00000000..cda209c6
Binary files /dev/null and b/test/de_fuzz/corpus/567c8143f42a568bf2df66883883e1782d274c2e differ
diff --git a/test/de_fuzz/corpus/56aba4f43cb78bbc703467d20c02dc31650c9ae4 b/test/de_fuzz/corpus/56aba4f43cb78bbc703467d20c02dc31650c9ae4
new file mode 100644
index 00000000..5818c879
Binary files /dev/null and b/test/de_fuzz/corpus/56aba4f43cb78bbc703467d20c02dc31650c9ae4 differ
diff --git a/test/de_fuzz/corpus/56e69dfeb370a5a05c11a4559bf0dcd4598e0650 b/test/de_fuzz/corpus/56e69dfeb370a5a05c11a4559bf0dcd4598e0650
new file mode 100644
index 00000000..d01814c6
Binary files /dev/null and b/test/de_fuzz/corpus/56e69dfeb370a5a05c11a4559bf0dcd4598e0650 differ
diff --git a/test/de_fuzz/corpus/573005c34c0179762545897a991951aead390c4c b/test/de_fuzz/corpus/573005c34c0179762545897a991951aead390c4c
new file mode 100644
index 00000000..8be592b2
Binary files /dev/null and b/test/de_fuzz/corpus/573005c34c0179762545897a991951aead390c4c differ
diff --git a/test/de_fuzz/corpus/573bd42834c0210cdbc25cee88c76eb12c9e45d9 b/test/de_fuzz/corpus/573bd42834c0210cdbc25cee88c76eb12c9e45d9
new file mode 100644
index 00000000..36780134
Binary files /dev/null and b/test/de_fuzz/corpus/573bd42834c0210cdbc25cee88c76eb12c9e45d9 differ
diff --git a/test/de_fuzz/corpus/578fa5ad8bafd11638a71b432d98d2b0d8eeab7a b/test/de_fuzz/corpus/578fa5ad8bafd11638a71b432d98d2b0d8eeab7a
new file mode 100644
index 00000000..4a7c075e
Binary files /dev/null and b/test/de_fuzz/corpus/578fa5ad8bafd11638a71b432d98d2b0d8eeab7a differ
diff --git a/test/de_fuzz/corpus/57c9657442e03de4450352cc362a4ed6d97ea461 b/test/de_fuzz/corpus/57c9657442e03de4450352cc362a4ed6d97ea461
new file mode 100644
index 00000000..880f8b1f
Binary files /dev/null and b/test/de_fuzz/corpus/57c9657442e03de4450352cc362a4ed6d97ea461 differ
diff --git a/test/de_fuzz/corpus/57cc47e975512d665a8cbf2e6074f32efb7d97ee b/test/de_fuzz/corpus/57cc47e975512d665a8cbf2e6074f32efb7d97ee
new file mode 100644
index 00000000..9141b4b9
Binary files /dev/null and b/test/de_fuzz/corpus/57cc47e975512d665a8cbf2e6074f32efb7d97ee differ
diff --git a/test/de_fuzz/corpus/57dab76a8772133350907774eb43d4567617f01b b/test/de_fuzz/corpus/57dab76a8772133350907774eb43d4567617f01b
new file mode 100644
index 00000000..faa0572f
Binary files /dev/null and b/test/de_fuzz/corpus/57dab76a8772133350907774eb43d4567617f01b differ
diff --git a/test/de_fuzz/corpus/57f81583bdc1fa691807f6726dae29fac2585f75 b/test/de_fuzz/corpus/57f81583bdc1fa691807f6726dae29fac2585f75
new file mode 100644
index 00000000..b12711d9
Binary files /dev/null and b/test/de_fuzz/corpus/57f81583bdc1fa691807f6726dae29fac2585f75 differ
diff --git a/test/de_fuzz/corpus/583698f305b868e2abc97aaf3322aaad61af3a73 b/test/de_fuzz/corpus/583698f305b868e2abc97aaf3322aaad61af3a73
new file mode 100644
index 00000000..32b59dbb
Binary files /dev/null and b/test/de_fuzz/corpus/583698f305b868e2abc97aaf3322aaad61af3a73 differ
diff --git a/test/de_fuzz/corpus/583e252b4a3a0e2585fd552b04f01a5305e10c9f b/test/de_fuzz/corpus/583e252b4a3a0e2585fd552b04f01a5305e10c9f
new file mode 100644
index 00000000..35eb15e4
Binary files /dev/null and b/test/de_fuzz/corpus/583e252b4a3a0e2585fd552b04f01a5305e10c9f differ
diff --git a/test/de_fuzz/corpus/5840e33fc90fea61d4cadde94b0a383522d39dd2 b/test/de_fuzz/corpus/5840e33fc90fea61d4cadde94b0a383522d39dd2
new file mode 100644
index 00000000..d23616aa
Binary files /dev/null and b/test/de_fuzz/corpus/5840e33fc90fea61d4cadde94b0a383522d39dd2 differ
diff --git a/test/de_fuzz/corpus/5858d447bec40700d8a851e5314c99c667b82f59 b/test/de_fuzz/corpus/5858d447bec40700d8a851e5314c99c667b82f59
new file mode 100644
index 00000000..c30b8e5e
Binary files /dev/null and b/test/de_fuzz/corpus/5858d447bec40700d8a851e5314c99c667b82f59 differ
diff --git a/test/de_fuzz/corpus/58736e930d9c5d906c54a392939b00a73d275ef8 b/test/de_fuzz/corpus/58736e930d9c5d906c54a392939b00a73d275ef8
new file mode 100644
index 00000000..4baef7ab
Binary files /dev/null and b/test/de_fuzz/corpus/58736e930d9c5d906c54a392939b00a73d275ef8 differ
diff --git a/test/de_fuzz/corpus/588155675031548fa926aa51c5f7a398697c316d b/test/de_fuzz/corpus/588155675031548fa926aa51c5f7a398697c316d
new file mode 100644
index 00000000..c21a7016
Binary files /dev/null and b/test/de_fuzz/corpus/588155675031548fa926aa51c5f7a398697c316d differ
diff --git a/test/de_fuzz/corpus/58c21590c05290e05b321f97426783ac01b345fa b/test/de_fuzz/corpus/58c21590c05290e05b321f97426783ac01b345fa
new file mode 100644
index 00000000..bd5fdfed
Binary files /dev/null and b/test/de_fuzz/corpus/58c21590c05290e05b321f97426783ac01b345fa differ
diff --git a/test/de_fuzz/corpus/58e4b8b29b3618790daca4b70728970167954e77 b/test/de_fuzz/corpus/58e4b8b29b3618790daca4b70728970167954e77
new file mode 100644
index 00000000..54e1fe10
Binary files /dev/null and b/test/de_fuzz/corpus/58e4b8b29b3618790daca4b70728970167954e77 differ
diff --git a/test/de_fuzz/corpus/58eabbd760519ca578c85f4005ab31842c9eff0e b/test/de_fuzz/corpus/58eabbd760519ca578c85f4005ab31842c9eff0e
new file mode 100644
index 00000000..03979ecd
Binary files /dev/null and b/test/de_fuzz/corpus/58eabbd760519ca578c85f4005ab31842c9eff0e differ
diff --git a/test/de_fuzz/corpus/58f0a89fc8775161206d61ab9bcdbf596e04dc48 b/test/de_fuzz/corpus/58f0a89fc8775161206d61ab9bcdbf596e04dc48
new file mode 100644
index 00000000..9867c287
Binary files /dev/null and b/test/de_fuzz/corpus/58f0a89fc8775161206d61ab9bcdbf596e04dc48 differ
diff --git a/test/de_fuzz/corpus/58f4943dbd29b45d680638224b900365b57466ae b/test/de_fuzz/corpus/58f4943dbd29b45d680638224b900365b57466ae
new file mode 100644
index 00000000..363f0684
Binary files /dev/null and b/test/de_fuzz/corpus/58f4943dbd29b45d680638224b900365b57466ae differ
diff --git a/test/de_fuzz/corpus/58ff5b9e7b544f257fb014e8a0cce115e2894c8a b/test/de_fuzz/corpus/58ff5b9e7b544f257fb014e8a0cce115e2894c8a
new file mode 100644
index 00000000..a92a7094
Binary files /dev/null and b/test/de_fuzz/corpus/58ff5b9e7b544f257fb014e8a0cce115e2894c8a differ
diff --git a/test/de_fuzz/corpus/59009b5e9d36c4ea8863243f66184b6a63fd7207 b/test/de_fuzz/corpus/59009b5e9d36c4ea8863243f66184b6a63fd7207
new file mode 100644
index 00000000..a77d6f69
Binary files /dev/null and b/test/de_fuzz/corpus/59009b5e9d36c4ea8863243f66184b6a63fd7207 differ
diff --git a/test/de_fuzz/corpus/592690e6b7d8057844f785a2369a4dec5dd074c4 b/test/de_fuzz/corpus/592690e6b7d8057844f785a2369a4dec5dd074c4
new file mode 100644
index 00000000..5724bfd2
Binary files /dev/null and b/test/de_fuzz/corpus/592690e6b7d8057844f785a2369a4dec5dd074c4 differ
diff --git a/test/de_fuzz/corpus/592a956943ba9eab75710064b1243eed26152352 b/test/de_fuzz/corpus/592a956943ba9eab75710064b1243eed26152352
new file mode 100644
index 00000000..06bd1de0
Binary files /dev/null and b/test/de_fuzz/corpus/592a956943ba9eab75710064b1243eed26152352 differ
diff --git a/test/de_fuzz/corpus/5968b4acb561ac0a3a82135eecd9341939d671b3 b/test/de_fuzz/corpus/5968b4acb561ac0a3a82135eecd9341939d671b3
new file mode 100644
index 00000000..d5058771
Binary files /dev/null and b/test/de_fuzz/corpus/5968b4acb561ac0a3a82135eecd9341939d671b3 differ
diff --git a/test/de_fuzz/corpus/597104a58b33b5a96ecdc0a0a50a467dddd0cf03 b/test/de_fuzz/corpus/597104a58b33b5a96ecdc0a0a50a467dddd0cf03
new file mode 100644
index 00000000..862c241a
Binary files /dev/null and b/test/de_fuzz/corpus/597104a58b33b5a96ecdc0a0a50a467dddd0cf03 differ
diff --git a/test/de_fuzz/corpus/599403fc970cda57f11b8659068c6cfdadf7214a b/test/de_fuzz/corpus/599403fc970cda57f11b8659068c6cfdadf7214a
new file mode 100644
index 00000000..2471ae4b
Binary files /dev/null and b/test/de_fuzz/corpus/599403fc970cda57f11b8659068c6cfdadf7214a differ
diff --git a/test/de_fuzz/corpus/59b4a311128a74e54921a093f3c442f518102a6c b/test/de_fuzz/corpus/59b4a311128a74e54921a093f3c442f518102a6c
new file mode 100644
index 00000000..d0f7cf03
Binary files /dev/null and b/test/de_fuzz/corpus/59b4a311128a74e54921a093f3c442f518102a6c differ
diff --git a/test/de_fuzz/corpus/59c7527d1a5ac20cdf13dc0b0c8f47e3ac074b48 b/test/de_fuzz/corpus/59c7527d1a5ac20cdf13dc0b0c8f47e3ac074b48
new file mode 100644
index 00000000..0e97c988
Binary files /dev/null and b/test/de_fuzz/corpus/59c7527d1a5ac20cdf13dc0b0c8f47e3ac074b48 differ
diff --git a/test/de_fuzz/corpus/59ef8072957e78d88e83fd7ab533e46f942e3c9a b/test/de_fuzz/corpus/59ef8072957e78d88e83fd7ab533e46f942e3c9a
new file mode 100644
index 00000000..1d7b6912
Binary files /dev/null and b/test/de_fuzz/corpus/59ef8072957e78d88e83fd7ab533e46f942e3c9a differ
diff --git a/test/de_fuzz/corpus/5a22e7066a187ca2a2805907e7136e8c56840876 b/test/de_fuzz/corpus/5a22e7066a187ca2a2805907e7136e8c56840876
new file mode 100644
index 00000000..129f41ca
Binary files /dev/null and b/test/de_fuzz/corpus/5a22e7066a187ca2a2805907e7136e8c56840876 differ
diff --git a/test/de_fuzz/corpus/5a323b2e01e70797f62991dc220cc28b99a3dca6 b/test/de_fuzz/corpus/5a323b2e01e70797f62991dc220cc28b99a3dca6
new file mode 100644
index 00000000..0bde2bba
--- /dev/null
+++ b/test/de_fuzz/corpus/5a323b2e01e70797f62991dc220cc28b99a3dca6
@@ -0,0 +1 @@
+Z(((((((a+)+)+)+)+)+)+)+|Y(((((((a+)+)+)+)+)+)+)+|X(((((((a+)+)+)+)+)+)+)+|W(((((((a+)+)+)+)+)+)+)+|V(((((((a+)+)+)+)+)+)+)+|CZ(((((((a+)+)+)+)+)+)+)+|CY(((((((a+)+)+)+)+)+)+)+|CX(((((((a+)+)+)+)+)+)+)+|CW(((((((a+)+)+)+)+)+)+)+|CV(((((((a+)+)+)+)+)+)+)+|(a+)+bc
\ No newline at end of file
diff --git a/test/de_fuzz/corpus/5af17ab1bdac8824a220b84fde30843e15247942 b/test/de_fuzz/corpus/5af17ab1bdac8824a220b84fde30843e15247942
new file mode 100644
index 00000000..9f988c98
Binary files /dev/null and b/test/de_fuzz/corpus/5af17ab1bdac8824a220b84fde30843e15247942 differ
diff --git a/test/de_fuzz/corpus/5b0ac12db2a353b10159d894e222a09fe4ff49e4 b/test/de_fuzz/corpus/5b0ac12db2a353b10159d894e222a09fe4ff49e4
new file mode 100644
index 00000000..51cc9970
Binary files /dev/null and b/test/de_fuzz/corpus/5b0ac12db2a353b10159d894e222a09fe4ff49e4 differ
diff --git a/test/de_fuzz/corpus/5b12d3a5eb96387520e2c4e547b3d48a435dff77 b/test/de_fuzz/corpus/5b12d3a5eb96387520e2c4e547b3d48a435dff77
new file mode 100644
index 00000000..9632d542
Binary files /dev/null and b/test/de_fuzz/corpus/5b12d3a5eb96387520e2c4e547b3d48a435dff77 differ
diff --git a/test/de_fuzz/corpus/5b27a3c53e3b8454c4c508553b7ad583f9b5ad1e b/test/de_fuzz/corpus/5b27a3c53e3b8454c4c508553b7ad583f9b5ad1e
new file mode 100644
index 00000000..e1df18e0
Binary files /dev/null and b/test/de_fuzz/corpus/5b27a3c53e3b8454c4c508553b7ad583f9b5ad1e differ
diff --git a/test/de_fuzz/corpus/5b642f8f20ff1da1101287c5df7e77b6a56e485d b/test/de_fuzz/corpus/5b642f8f20ff1da1101287c5df7e77b6a56e485d
new file mode 100644
index 00000000..0dbc02aa
Binary files /dev/null and b/test/de_fuzz/corpus/5b642f8f20ff1da1101287c5df7e77b6a56e485d differ
diff --git a/test/de_fuzz/corpus/5b72447f2a62ffcde00ca91214cebe57bc0fec07 b/test/de_fuzz/corpus/5b72447f2a62ffcde00ca91214cebe57bc0fec07
new file mode 100644
index 00000000..d1df1eed
Binary files /dev/null and b/test/de_fuzz/corpus/5b72447f2a62ffcde00ca91214cebe57bc0fec07 differ
diff --git a/test/de_fuzz/corpus/5b8ba2788cdac90c6cf1fbeb7eae1c5f7b923b9e b/test/de_fuzz/corpus/5b8ba2788cdac90c6cf1fbeb7eae1c5f7b923b9e
new file mode 100644
index 00000000..22c77a68
Binary files /dev/null and b/test/de_fuzz/corpus/5b8ba2788cdac90c6cf1fbeb7eae1c5f7b923b9e differ
diff --git a/test/de_fuzz/corpus/5bd7ad1ad352565fd133cb004dd12f8da9c6fdcc b/test/de_fuzz/corpus/5bd7ad1ad352565fd133cb004dd12f8da9c6fdcc
new file mode 100644
index 00000000..02ecf6fd
Binary files /dev/null and b/test/de_fuzz/corpus/5bd7ad1ad352565fd133cb004dd12f8da9c6fdcc differ
diff --git a/test/de_fuzz/corpus/5bda73b555b77d483230ae592b20e06bca0b814e b/test/de_fuzz/corpus/5bda73b555b77d483230ae592b20e06bca0b814e
new file mode 100644
index 00000000..f16c0669
Binary files /dev/null and b/test/de_fuzz/corpus/5bda73b555b77d483230ae592b20e06bca0b814e differ
diff --git a/test/de_fuzz/corpus/5c5dc0b778c7d75a605e183b5f65f44f27082078 b/test/de_fuzz/corpus/5c5dc0b778c7d75a605e183b5f65f44f27082078
new file mode 100644
index 00000000..38447168
--- /dev/null
+++ b/test/de_fuzz/corpus/5c5dc0b778c7d75a605e183b5f65f44f27082078
@@ -0,0 +1 @@
+\RZ(((((((a+)+)-)+)+)+)+)+|Y(((((((a+)+)+)+)+)+)+)+|X((((()+)+)+|X(((((((a+)+)+)+)+)+)+)+(|W((((((a+)+)++)+)i+)+)+|V(((((((a(((((a+)+)+)+)+)+)+)+|X((((()+)+)+|X(((((((a+)+)+)+)+)+)+)+(|W((((((a+)+)++)+)i+)+)+|V(((((((a+)|Y(((((((a+)+)+)+)+)+)+)+|X((((()+)+)+|X(((((((a+)+)+)+)+)+)+)+(|W((((((a+(a+)+)+)+)+)+)+)+(|W((((((a+)+)+)+)++)+)i+)+)+|V(((((((a+)+(a+)+)+)+)+)+)+)+(|W((((((a+)+)++)+)i+)+)+|V(((((((a+)+)+!\Pd2(a+)+)((((()+)+)+|X(((((((a+)+)+)+)+)+)+)+(|W((((((a+)+)++)+)i+)+)+|V(((((((a+)|Y(((((((a+)+)+)+)+)+)+)+|X((((()+)+)+|X(((((((a+)+)+)+)+)+)+)+(|W((((((a+)+)++)+)i+)+)+|V(((((((a+)+)+!\Pd4((a+)+)+)+)+)+)+)+(|W((((((a+)+)++)+)i+)+)+|V(((((((a+)+)+!\Pd2(a+)+)+)+)+)+)+)+)+)+)+)+|(a+)+bc
\ No newline at end of file
diff --git a/test/de_fuzz/corpus/5c68ea958737035cedc539cb778ccafb25532610 b/test/de_fuzz/corpus/5c68ea958737035cedc539cb778ccafb25532610
new file mode 100644
index 00000000..0c0e23df
Binary files /dev/null and b/test/de_fuzz/corpus/5c68ea958737035cedc539cb778ccafb25532610 differ
diff --git a/test/de_fuzz/corpus/5c8de7c96becbf6d8209849e64f04200f3148ed8 b/test/de_fuzz/corpus/5c8de7c96becbf6d8209849e64f04200f3148ed8
new file mode 100644
index 00000000..17cc6a65
--- /dev/null
+++ b/test/de_fuzz/corpus/5c8de7c96becbf6d8209849e64f04200f3148ed8
@@ -0,0 +1,130 @@
+'è (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* # optional leading comment
+(?: (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+) # initial word
+(?: (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] itial subdomain
+(?: #
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. # if led by a period...
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # ...further okay
+)*
+(?: (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* , (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ial subdomain
+(?: #
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. # if led by a period...
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # ...further okay
+)*
+)* # further okay, if led by comma
+: # closing colon
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* )? # optional route
+(?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+) # initial word
+(?: (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atfm
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+) )* # further okay, if led by a period
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* @ (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) )* # stuff
+\] # ]
+) # initial subdomain
+(?: #
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. # if led by a period...
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part # initial subdomain
+(?: #
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. # if led by a period...
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # ...further okay
+)*
+# address spec
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* > # trailing >
+# name and address
+) (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* # optional trailing comment
+
+
\ No newline at end of file
diff --git a/test/de_fuzz/corpus/5c91a68e2bad54796410669f6e80af3744eb5f29 b/test/de_fuzz/corpus/5c91a68e2bad54796410669f6e80af3744eb5f29
new file mode 100644
index 00000000..1574a595
Binary files /dev/null and b/test/de_fuzz/corpus/5c91a68e2bad54796410669f6e80af3744eb5f29 differ
diff --git a/test/de_fuzz/corpus/5caedd71f1abc40b75755b0291f2add3706a6c52 b/test/de_fuzz/corpus/5caedd71f1abc40b75755b0291f2add3706a6c52
new file mode 100644
index 00000000..50c81660
Binary files /dev/null and b/test/de_fuzz/corpus/5caedd71f1abc40b75755b0291f2add3706a6c52 differ
diff --git a/test/de_fuzz/corpus/5cb4ddd6fb9152166458eb960b9eeb885a47def9 b/test/de_fuzz/corpus/5cb4ddd6fb9152166458eb960b9eeb885a47def9
new file mode 100644
index 00000000..c0da2d01
Binary files /dev/null and b/test/de_fuzz/corpus/5cb4ddd6fb9152166458eb960b9eeb885a47def9 differ
diff --git a/test/de_fuzz/corpus/5cbe509e8ed3c23529a4a8c35635126c4c8d58fb b/test/de_fuzz/corpus/5cbe509e8ed3c23529a4a8c35635126c4c8d58fb
new file mode 100644
index 00000000..0aa77f6d
Binary files /dev/null and b/test/de_fuzz/corpus/5cbe509e8ed3c23529a4a8c35635126c4c8d58fb differ
diff --git a/test/de_fuzz/corpus/5d097b75cb1827e240fe0e94a54a48a24c64fdc6 b/test/de_fuzz/corpus/5d097b75cb1827e240fe0e94a54a48a24c64fdc6
new file mode 100644
index 00000000..22a79305
Binary files /dev/null and b/test/de_fuzz/corpus/5d097b75cb1827e240fe0e94a54a48a24c64fdc6 differ
diff --git a/test/de_fuzz/corpus/5d1bec280cc83d1f7c692c6bf91f10c7dd4a87e1 b/test/de_fuzz/corpus/5d1bec280cc83d1f7c692c6bf91f10c7dd4a87e1
new file mode 100644
index 00000000..146103b6
Binary files /dev/null and b/test/de_fuzz/corpus/5d1bec280cc83d1f7c692c6bf91f10c7dd4a87e1 differ
diff --git a/test/de_fuzz/corpus/5d444806a2867d340aa0b1f712896fe48065d2aa b/test/de_fuzz/corpus/5d444806a2867d340aa0b1f712896fe48065d2aa
new file mode 100644
index 00000000..ff9150da
Binary files /dev/null and b/test/de_fuzz/corpus/5d444806a2867d340aa0b1f712896fe48065d2aa differ
diff --git a/test/de_fuzz/corpus/5d71464c6ee960833623a3daf974e1f9e7974c4b b/test/de_fuzz/corpus/5d71464c6ee960833623a3daf974e1f9e7974c4b
new file mode 100644
index 00000000..2a4f0378
Binary files /dev/null and b/test/de_fuzz/corpus/5d71464c6ee960833623a3daf974e1f9e7974c4b differ
diff --git a/test/de_fuzz/corpus/5d7edbd07317010b38dcf87738d22585a4ba468f b/test/de_fuzz/corpus/5d7edbd07317010b38dcf87738d22585a4ba468f
new file mode 100644
index 00000000..ad474a8a
Binary files /dev/null and b/test/de_fuzz/corpus/5d7edbd07317010b38dcf87738d22585a4ba468f differ
diff --git a/test/de_fuzz/corpus/5d9f951d6020969f7c7a1b00e548e6d7554be2ee b/test/de_fuzz/corpus/5d9f951d6020969f7c7a1b00e548e6d7554be2ee
new file mode 100644
index 00000000..eff05a87
Binary files /dev/null and b/test/de_fuzz/corpus/5d9f951d6020969f7c7a1b00e548e6d7554be2ee differ
diff --git a/test/de_fuzz/corpus/5db4da4033b0883e8f4988caccf1d2cb785414e0 b/test/de_fuzz/corpus/5db4da4033b0883e8f4988caccf1d2cb785414e0
new file mode 100644
index 00000000..a4c26977
Binary files /dev/null and b/test/de_fuzz/corpus/5db4da4033b0883e8f4988caccf1d2cb785414e0 differ
diff --git a/test/de_fuzz/corpus/5df95c1c2c677346ae668539a636137cf2d57b80 b/test/de_fuzz/corpus/5df95c1c2c677346ae668539a636137cf2d57b80
new file mode 100644
index 00000000..43828de8
Binary files /dev/null and b/test/de_fuzz/corpus/5df95c1c2c677346ae668539a636137cf2d57b80 differ
diff --git a/test/de_fuzz/corpus/5e19656cdee243684a7a445051ea08dcb1234dae b/test/de_fuzz/corpus/5e19656cdee243684a7a445051ea08dcb1234dae
new file mode 100644
index 00000000..f9064772
Binary files /dev/null and b/test/de_fuzz/corpus/5e19656cdee243684a7a445051ea08dcb1234dae differ
diff --git a/test/de_fuzz/corpus/5e3ee16c6009f38c0ddfcca7be1c763791effd12 b/test/de_fuzz/corpus/5e3ee16c6009f38c0ddfcca7be1c763791effd12
new file mode 100644
index 00000000..bc18a546
Binary files /dev/null and b/test/de_fuzz/corpus/5e3ee16c6009f38c0ddfcca7be1c763791effd12 differ
diff --git a/test/de_fuzz/corpus/5e450655253477c5a65e16366a818d22fb903c81 b/test/de_fuzz/corpus/5e450655253477c5a65e16366a818d22fb903c81
new file mode 100644
index 00000000..9bb00952
Binary files /dev/null and b/test/de_fuzz/corpus/5e450655253477c5a65e16366a818d22fb903c81 differ
diff --git a/test/de_fuzz/corpus/5e57da62c347fd43a2e4d07437041b7380e5bc4b b/test/de_fuzz/corpus/5e57da62c347fd43a2e4d07437041b7380e5bc4b
new file mode 100644
index 00000000..ecc8f6a3
Binary files /dev/null and b/test/de_fuzz/corpus/5e57da62c347fd43a2e4d07437041b7380e5bc4b differ
diff --git a/test/de_fuzz/corpus/5e77b3b1aa38c214f5f3b19002efe94067cd60ad b/test/de_fuzz/corpus/5e77b3b1aa38c214f5f3b19002efe94067cd60ad
new file mode 100644
index 00000000..00003293
Binary files /dev/null and b/test/de_fuzz/corpus/5e77b3b1aa38c214f5f3b19002efe94067cd60ad differ
diff --git a/test/de_fuzz/corpus/5e8c46401dd56a49a9d6f48f0e7fabb894f1a29f b/test/de_fuzz/corpus/5e8c46401dd56a49a9d6f48f0e7fabb894f1a29f
new file mode 100644
index 00000000..6992cb31
Binary files /dev/null and b/test/de_fuzz/corpus/5e8c46401dd56a49a9d6f48f0e7fabb894f1a29f differ
diff --git a/test/de_fuzz/corpus/5e9745a7c3cd099da145056d2b7a7c6ca414a716 b/test/de_fuzz/corpus/5e9745a7c3cd099da145056d2b7a7c6ca414a716
new file mode 100644
index 00000000..094ab1a0
Binary files /dev/null and b/test/de_fuzz/corpus/5e9745a7c3cd099da145056d2b7a7c6ca414a716 differ
diff --git a/test/de_fuzz/corpus/5e9c24d30272eeafd08cf251741f07fba33cd3a3 b/test/de_fuzz/corpus/5e9c24d30272eeafd08cf251741f07fba33cd3a3
new file mode 100644
index 00000000..21046a67
Binary files /dev/null and b/test/de_fuzz/corpus/5e9c24d30272eeafd08cf251741f07fba33cd3a3 differ
diff --git a/test/de_fuzz/corpus/5ee15a2502c86fdd30e79d7d039c7a79de86f0a5 b/test/de_fuzz/corpus/5ee15a2502c86fdd30e79d7d039c7a79de86f0a5
new file mode 100644
index 00000000..11465255
--- /dev/null
+++ b/test/de_fuzz/corpus/5ee15a2502c86fdd30e79d7d039c7a79de86f0a5
@@ -0,0 +1 @@
+Z(((((((a+)+)+)+)+)+)+)+|Y(((((((a+)+)+)+)+)+)+)+|X((((((()+)+|V(((((((a+)+)+)+)+)+)+)+|CZ(((((((a+)+)+)Ï)+)+)+)+|CY(((((((a+)+)+)+)+)+)+)+|(*FAIL)((a+)+)+)+)+)+)+)+|CW(((((((a+)+)+)+)+)+)+)+|CV(((((((a+)+)+)+)+)+)+)+|(a+)+bc
\ No newline at end of file
diff --git a/test/de_fuzz/corpus/5f24c8466b95a76151c872f75bb9a15b585a2221 b/test/de_fuzz/corpus/5f24c8466b95a76151c872f75bb9a15b585a2221
new file mode 100644
index 00000000..a5a6ce44
Binary files /dev/null and b/test/de_fuzz/corpus/5f24c8466b95a76151c872f75bb9a15b585a2221 differ
diff --git a/test/de_fuzz/corpus/5f4dca766887e795005fb8c135e55cb6272cce36 b/test/de_fuzz/corpus/5f4dca766887e795005fb8c135e55cb6272cce36
new file mode 100644
index 00000000..7c0d9c18
Binary files /dev/null and b/test/de_fuzz/corpus/5f4dca766887e795005fb8c135e55cb6272cce36 differ
diff --git a/test/de_fuzz/corpus/5fa4750f7065e0354f38ecfe8ddc9fa3420d28ad b/test/de_fuzz/corpus/5fa4750f7065e0354f38ecfe8ddc9fa3420d28ad
new file mode 100644
index 00000000..91b5783b
--- /dev/null
+++ b/test/de_fuzz/corpus/5fa4750f7065e0354f38ecfe8ddc9fa3420d28ad
@@ -0,0 +1,183 @@
+'è (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* # optional leading comment
+(?: (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+) # initial word
+(?: (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] [| \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] itial subdomain
+(?: #
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. # if led by a period...
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # ...further okay
+)*
+(?: (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\ø80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* , (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* @ (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # initial subdomain
+(?: #
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. # if led by a period...
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # ...further okay
+)*
+)* # further okay, if led by comma
+: # closing colon
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* )? # optional route
+(?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped som¦thing (something != CR)
+)* " # closing quote
+) # initial word
+(?: (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+) )* # further okay, if led by a period
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* @ (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \¥( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # initial subdomain
+(?: #
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. # if led by a period...
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* )? # optional route
+(?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped som¦thing (something != CR)
+)* " # closing quote
+) # initial word
+(?: (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+) )* # further okay, if led by a period
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* @ (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \¥( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # initial subdomain
+(?: #
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. # if led by a period...
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # ...further okay
+)*
+# address spec
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* > # trailing >
+# name and
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # ...further okay
+)*
+# address spec
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* > # trailing >
+# name and address
+) (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW # optional trailing comment
+
+
\ No newline at end of file
diff --git a/test/de_fuzz/corpus/5fdc3476128838b07a11bcef07565ba601db7973 b/test/de_fuzz/corpus/5fdc3476128838b07a11bcef07565ba601db7973
new file mode 100644
index 00000000..037fb17f
Binary files /dev/null and b/test/de_fuzz/corpus/5fdc3476128838b07a11bcef07565ba601db7973 differ
diff --git a/test/de_fuzz/corpus/6032400ea563ba1af1cf8263ebfd325856354c0b b/test/de_fuzz/corpus/6032400ea563ba1af1cf8263ebfd325856354c0b
new file mode 100644
index 00000000..9a55f48b
Binary files /dev/null and b/test/de_fuzz/corpus/6032400ea563ba1af1cf8263ebfd325856354c0b differ
diff --git a/test/de_fuzz/corpus/603dff163c7316931a2edb7a2cb96e9a230a75e2 b/test/de_fuzz/corpus/603dff163c7316931a2edb7a2cb96e9a230a75e2
new file mode 100644
index 00000000..5726299e
Binary files /dev/null and b/test/de_fuzz/corpus/603dff163c7316931a2edb7a2cb96e9a230a75e2 differ
diff --git a/test/de_fuzz/corpus/608c4438596392488f42142d62ca16a96e03d8eb b/test/de_fuzz/corpus/608c4438596392488f42142d62ca16a96e03d8eb
new file mode 100644
index 00000000..17246024
Binary files /dev/null and b/test/de_fuzz/corpus/608c4438596392488f42142d62ca16a96e03d8eb differ
diff --git a/test/de_fuzz/corpus/60af12410d8a60e2c419ac5b43e316202caa0e8b b/test/de_fuzz/corpus/60af12410d8a60e2c419ac5b43e316202caa0e8b
new file mode 100644
index 00000000..9b6d41f3
Binary files /dev/null and b/test/de_fuzz/corpus/60af12410d8a60e2c419ac5b43e316202caa0e8b differ
diff --git a/test/de_fuzz/corpus/60e60bad7551cf54d7bcbf0b4e6208c8e3cd95bf b/test/de_fuzz/corpus/60e60bad7551cf54d7bcbf0b4e6208c8e3cd95bf
new file mode 100644
index 00000000..8bb2c98c
Binary files /dev/null and b/test/de_fuzz/corpus/60e60bad7551cf54d7bcbf0b4e6208c8e3cd95bf differ
diff --git a/test/de_fuzz/corpus/610a0a2164c4c322140c0c0d98181fc2e9d107b8 b/test/de_fuzz/corpus/610a0a2164c4c322140c0c0d98181fc2e9d107b8
new file mode 100644
index 00000000..94dc59b4
Binary files /dev/null and b/test/de_fuzz/corpus/610a0a2164c4c322140c0c0d98181fc2e9d107b8 differ
diff --git a/test/de_fuzz/corpus/6121974068cf1da853b1d3632488285bc35926e6 b/test/de_fuzz/corpus/6121974068cf1da853b1d3632488285bc35926e6
new file mode 100644
index 00000000..71408e14
Binary files /dev/null and b/test/de_fuzz/corpus/6121974068cf1da853b1d3632488285bc35926e6 differ
diff --git a/test/de_fuzz/corpus/613674cc162cfe6fb41ed0a3893d4b69c7a9e687 b/test/de_fuzz/corpus/613674cc162cfe6fb41ed0a3893d4b69c7a9e687
new file mode 100644
index 00000000..889cb723
Binary files /dev/null and b/test/de_fuzz/corpus/613674cc162cfe6fb41ed0a3893d4b69c7a9e687 differ
diff --git a/test/de_fuzz/corpus/618e412cb1c64ee007e4efa6109984f306bcc918 b/test/de_fuzz/corpus/618e412cb1c64ee007e4efa6109984f306bcc918
new file mode 100644
index 00000000..7727a3dc
Binary files /dev/null and b/test/de_fuzz/corpus/618e412cb1c64ee007e4efa6109984f306bcc918 differ
diff --git a/test/de_fuzz/corpus/61d32f483502a96edc73f6f6aa8aa246c14b1280 b/test/de_fuzz/corpus/61d32f483502a96edc73f6f6aa8aa246c14b1280
new file mode 100644
index 00000000..8bf39f08
Binary files /dev/null and b/test/de_fuzz/corpus/61d32f483502a96edc73f6f6aa8aa246c14b1280 differ
diff --git a/test/de_fuzz/corpus/61d4ee5d4089f3df358c733791ce3eb26c711a9f b/test/de_fuzz/corpus/61d4ee5d4089f3df358c733791ce3eb26c711a9f
new file mode 100644
index 00000000..aabcfcbe
Binary files /dev/null and b/test/de_fuzz/corpus/61d4ee5d4089f3df358c733791ce3eb26c711a9f differ
diff --git a/test/de_fuzz/corpus/61e8f09f5081de54e2abe19ed91ed696978456a2 b/test/de_fuzz/corpus/61e8f09f5081de54e2abe19ed91ed696978456a2
new file mode 100644
index 00000000..97c863f5
Binary files /dev/null and b/test/de_fuzz/corpus/61e8f09f5081de54e2abe19ed91ed696978456a2 differ
diff --git a/test/de_fuzz/corpus/62011bf15a5b6333c3ac3f297f5768cffb60a670 b/test/de_fuzz/corpus/62011bf15a5b6333c3ac3f297f5768cffb60a670
new file mode 100644
index 00000000..10a99b36
Binary files /dev/null and b/test/de_fuzz/corpus/62011bf15a5b6333c3ac3f297f5768cffb60a670 differ
diff --git a/test/de_fuzz/corpus/621455bb4b1d7370ff602b5b331d8b97c5d47655 b/test/de_fuzz/corpus/621455bb4b1d7370ff602b5b331d8b97c5d47655
new file mode 100644
index 00000000..99159bf0
Binary files /dev/null and b/test/de_fuzz/corpus/621455bb4b1d7370ff602b5b331d8b97c5d47655 differ
diff --git a/test/de_fuzz/corpus/6224f346787955479b4d399d2af5dd242c360487 b/test/de_fuzz/corpus/6224f346787955479b4d399d2af5dd242c360487
new file mode 100644
index 00000000..9056d915
Binary files /dev/null and b/test/de_fuzz/corpus/6224f346787955479b4d399d2af5dd242c360487 differ
diff --git a/test/de_fuzz/corpus/6232af1e02d66be4dfab5af05741f9a07c6bc57b b/test/de_fuzz/corpus/6232af1e02d66be4dfab5af05741f9a07c6bc57b
new file mode 100644
index 00000000..c63d151c
Binary files /dev/null and b/test/de_fuzz/corpus/6232af1e02d66be4dfab5af05741f9a07c6bc57b differ
diff --git a/test/de_fuzz/corpus/62a7c6296754c52074f61f754e82c64644de7e08 b/test/de_fuzz/corpus/62a7c6296754c52074f61f754e82c64644de7e08
new file mode 100644
index 00000000..d01a9c72
Binary files /dev/null and b/test/de_fuzz/corpus/62a7c6296754c52074f61f754e82c64644de7e08 differ
diff --git a/test/de_fuzz/corpus/62a891466e34276e82b89c9bdb2b63930a6bcac4 b/test/de_fuzz/corpus/62a891466e34276e82b89c9bdb2b63930a6bcac4
new file mode 100644
index 00000000..4f58753e
Binary files /dev/null and b/test/de_fuzz/corpus/62a891466e34276e82b89c9bdb2b63930a6bcac4 differ
diff --git a/test/de_fuzz/corpus/62c4cf02a54072e055d151a61d0c42428d0e6eb2 b/test/de_fuzz/corpus/62c4cf02a54072e055d151a61d0c42428d0e6eb2
new file mode 100644
index 00000000..a83ecf05
Binary files /dev/null and b/test/de_fuzz/corpus/62c4cf02a54072e055d151a61d0c42428d0e6eb2 differ
diff --git a/test/de_fuzz/corpus/633eaa03201454ce1cfee4b10dc6d2e60e633433 b/test/de_fuzz/corpus/633eaa03201454ce1cfee4b10dc6d2e60e633433
new file mode 100644
index 00000000..8b8e2b21
Binary files /dev/null and b/test/de_fuzz/corpus/633eaa03201454ce1cfee4b10dc6d2e60e633433 differ
diff --git a/test/de_fuzz/corpus/63800aa9768bbe03e46210b8dbb3766d843edb6c b/test/de_fuzz/corpus/63800aa9768bbe03e46210b8dbb3766d843edb6c
new file mode 100644
index 00000000..70df2346
Binary files /dev/null and b/test/de_fuzz/corpus/63800aa9768bbe03e46210b8dbb3766d843edb6c differ
diff --git a/test/de_fuzz/corpus/63a01673a84b8f3b3ba7ef9348571319d4098985 b/test/de_fuzz/corpus/63a01673a84b8f3b3ba7ef9348571319d4098985
new file mode 100644
index 00000000..e0951468
Binary files /dev/null and b/test/de_fuzz/corpus/63a01673a84b8f3b3ba7ef9348571319d4098985 differ
diff --git a/test/de_fuzz/corpus/63a303714038e2f7f5ec176c0c402f1cc4cbbc61 b/test/de_fuzz/corpus/63a303714038e2f7f5ec176c0c402f1cc4cbbc61
new file mode 100644
index 00000000..db8ef2d0
Binary files /dev/null and b/test/de_fuzz/corpus/63a303714038e2f7f5ec176c0c402f1cc4cbbc61 differ
diff --git a/test/de_fuzz/corpus/63b45521dd3f0247140a49243df694a5ff6a34fa b/test/de_fuzz/corpus/63b45521dd3f0247140a49243df694a5ff6a34fa
new file mode 100644
index 00000000..3808b185
Binary files /dev/null and b/test/de_fuzz/corpus/63b45521dd3f0247140a49243df694a5ff6a34fa differ
diff --git a/test/de_fuzz/corpus/64181fd35d0b9f1ab680b3d2fbb08d188fe1ed02 b/test/de_fuzz/corpus/64181fd35d0b9f1ab680b3d2fbb08d188fe1ed02
new file mode 100644
index 00000000..c24adcf7
Binary files /dev/null and b/test/de_fuzz/corpus/64181fd35d0b9f1ab680b3d2fbb08d188fe1ed02 differ
diff --git a/test/de_fuzz/corpus/643e67d4f4833dd1b0241307f5f9693baa5a6299 b/test/de_fuzz/corpus/643e67d4f4833dd1b0241307f5f9693baa5a6299
new file mode 100644
index 00000000..b546fbe0
Binary files /dev/null and b/test/de_fuzz/corpus/643e67d4f4833dd1b0241307f5f9693baa5a6299 differ
diff --git a/test/de_fuzz/corpus/64537835d1e141bc6eb9fe92afa53a6249fdcdf0 b/test/de_fuzz/corpus/64537835d1e141bc6eb9fe92afa53a6249fdcdf0
new file mode 100644
index 00000000..734c0cca
Binary files /dev/null and b/test/de_fuzz/corpus/64537835d1e141bc6eb9fe92afa53a6249fdcdf0 differ
diff --git a/test/de_fuzz/corpus/648ef1be77aec4dbc6db27fd9acd214999fa5e7d b/test/de_fuzz/corpus/648ef1be77aec4dbc6db27fd9acd214999fa5e7d
new file mode 100644
index 00000000..f05f85df
Binary files /dev/null and b/test/de_fuzz/corpus/648ef1be77aec4dbc6db27fd9acd214999fa5e7d differ
diff --git a/test/de_fuzz/corpus/64920261ed859ada4c36f7c8539aa780ce59be06 b/test/de_fuzz/corpus/64920261ed859ada4c36f7c8539aa780ce59be06
new file mode 100644
index 00000000..f747002a
Binary files /dev/null and b/test/de_fuzz/corpus/64920261ed859ada4c36f7c8539aa780ce59be06 differ
diff --git a/test/de_fuzz/corpus/64cef82c22b8af0f38e29c5e18546eec1091db1c b/test/de_fuzz/corpus/64cef82c22b8af0f38e29c5e18546eec1091db1c
new file mode 100644
index 00000000..1217ba01
Binary files /dev/null and b/test/de_fuzz/corpus/64cef82c22b8af0f38e29c5e18546eec1091db1c differ
diff --git a/test/de_fuzz/corpus/64d2d2ff57f35ddfaf939d1d75db673aa76c612a b/test/de_fuzz/corpus/64d2d2ff57f35ddfaf939d1d75db673aa76c612a
new file mode 100644
index 00000000..7b0631d5
Binary files /dev/null and b/test/de_fuzz/corpus/64d2d2ff57f35ddfaf939d1d75db673aa76c612a differ
diff --git a/test/de_fuzz/corpus/6506871c167dcecd9fe0e4fe5a7930bdeb070c14 b/test/de_fuzz/corpus/6506871c167dcecd9fe0e4fe5a7930bdeb070c14
new file mode 100644
index 00000000..6eb7f996
Binary files /dev/null and b/test/de_fuzz/corpus/6506871c167dcecd9fe0e4fe5a7930bdeb070c14 differ
diff --git a/test/de_fuzz/corpus/656d3a7c6b4efcb5ebf05c77d4d94433082aaab0 b/test/de_fuzz/corpus/656d3a7c6b4efcb5ebf05c77d4d94433082aaab0
new file mode 100644
index 00000000..51531009
Binary files /dev/null and b/test/de_fuzz/corpus/656d3a7c6b4efcb5ebf05c77d4d94433082aaab0 differ
diff --git a/test/de_fuzz/corpus/6587cc08900e1ed6c020fae4fd0c87cf3729f396 b/test/de_fuzz/corpus/6587cc08900e1ed6c020fae4fd0c87cf3729f396
new file mode 100644
index 00000000..e1551716
Binary files /dev/null and b/test/de_fuzz/corpus/6587cc08900e1ed6c020fae4fd0c87cf3729f396 differ
diff --git a/test/de_fuzz/corpus/658cbf06c04cdbb21d461fa282bf95053a348850 b/test/de_fuzz/corpus/658cbf06c04cdbb21d461fa282bf95053a348850
new file mode 100644
index 00000000..47b70317
Binary files /dev/null and b/test/de_fuzz/corpus/658cbf06c04cdbb21d461fa282bf95053a348850 differ
diff --git a/test/de_fuzz/corpus/65b59841f68a00c71f4d493765f06bede21e1285 b/test/de_fuzz/corpus/65b59841f68a00c71f4d493765f06bede21e1285
new file mode 100644
index 00000000..fc546b77
Binary files /dev/null and b/test/de_fuzz/corpus/65b59841f68a00c71f4d493765f06bede21e1285 differ
diff --git a/test/de_fuzz/corpus/65b981c618b09c4d26113b6fa3c97adfb2af1ea1 b/test/de_fuzz/corpus/65b981c618b09c4d26113b6fa3c97adfb2af1ea1
new file mode 100644
index 00000000..f0a0c774
Binary files /dev/null and b/test/de_fuzz/corpus/65b981c618b09c4d26113b6fa3c97adfb2af1ea1 differ
diff --git a/test/de_fuzz/corpus/65ba381913154595fa1e3e8b4b8e2967c83dda4f b/test/de_fuzz/corpus/65ba381913154595fa1e3e8b4b8e2967c83dda4f
new file mode 100644
index 00000000..9e6503cb
Binary files /dev/null and b/test/de_fuzz/corpus/65ba381913154595fa1e3e8b4b8e2967c83dda4f differ
diff --git a/test/de_fuzz/corpus/65baf7df8f964388abba2c374eec80c68d7f02cd b/test/de_fuzz/corpus/65baf7df8f964388abba2c374eec80c68d7f02cd
new file mode 100644
index 00000000..b28e5c9b
Binary files /dev/null and b/test/de_fuzz/corpus/65baf7df8f964388abba2c374eec80c68d7f02cd differ
diff --git a/test/de_fuzz/corpus/65bdb59e8d1f5da8e38c973ef98dcdda95a54606 b/test/de_fuzz/corpus/65bdb59e8d1f5da8e38c973ef98dcdda95a54606
new file mode 100644
index 00000000..25de3cbc
Binary files /dev/null and b/test/de_fuzz/corpus/65bdb59e8d1f5da8e38c973ef98dcdda95a54606 differ
diff --git a/test/de_fuzz/corpus/65cd7b925cafc17c7c74d33186d02bfbb78a575a b/test/de_fuzz/corpus/65cd7b925cafc17c7c74d33186d02bfbb78a575a
new file mode 100644
index 00000000..f9d5a331
Binary files /dev/null and b/test/de_fuzz/corpus/65cd7b925cafc17c7c74d33186d02bfbb78a575a differ
diff --git a/test/de_fuzz/corpus/65d1873369b9ab7fb4f733da76a1109c525a9263 b/test/de_fuzz/corpus/65d1873369b9ab7fb4f733da76a1109c525a9263
new file mode 100644
index 00000000..d28c01e5
Binary files /dev/null and b/test/de_fuzz/corpus/65d1873369b9ab7fb4f733da76a1109c525a9263 differ
diff --git a/test/de_fuzz/corpus/65edc6bf16adaaca57faa99455e138142cdc7e6f b/test/de_fuzz/corpus/65edc6bf16adaaca57faa99455e138142cdc7e6f
new file mode 100644
index 00000000..2353a8e1
--- /dev/null
+++ b/test/de_fuzz/corpus/65edc6bf16adaaca57faa99455e138142cdc7e6f
@@ -0,0 +1 @@
+AE.\ZB]auuuuu|uuuuuu.uuuuuuu[[.AE.]-B]auuuuuuuuuuuuuuuuuuuuuuuu
\ No newline at end of file
diff --git a/test/de_fuzz/corpus/65efd5b9b0142226126731f34aa5fd8903993a02 b/test/de_fuzz/corpus/65efd5b9b0142226126731f34aa5fd8903993a02
new file mode 100644
index 00000000..7eb44034
Binary files /dev/null and b/test/de_fuzz/corpus/65efd5b9b0142226126731f34aa5fd8903993a02 differ
diff --git a/test/de_fuzz/corpus/66019600b18f2cb85322ca950e3791492a94ae65 b/test/de_fuzz/corpus/66019600b18f2cb85322ca950e3791492a94ae65
new file mode 100644
index 00000000..75505867
Binary files /dev/null and b/test/de_fuzz/corpus/66019600b18f2cb85322ca950e3791492a94ae65 differ
diff --git a/test/de_fuzz/corpus/6620554619709d876f9c683bbfa476cebcc502ab b/test/de_fuzz/corpus/6620554619709d876f9c683bbfa476cebcc502ab
new file mode 100644
index 00000000..8acc0d8d
Binary files /dev/null and b/test/de_fuzz/corpus/6620554619709d876f9c683bbfa476cebcc502ab differ
diff --git a/test/de_fuzz/corpus/66235a491548ed3f78d9678a9d03a343534ecb09 b/test/de_fuzz/corpus/66235a491548ed3f78d9678a9d03a343534ecb09
new file mode 100644
index 00000000..71964aa1
Binary files /dev/null and b/test/de_fuzz/corpus/66235a491548ed3f78d9678a9d03a343534ecb09 differ
diff --git a/test/de_fuzz/corpus/66703ca343e6efdd55fe13dd06e8d0b58cec719b b/test/de_fuzz/corpus/66703ca343e6efdd55fe13dd06e8d0b58cec719b
new file mode 100644
index 00000000..0f3c79d7
Binary files /dev/null and b/test/de_fuzz/corpus/66703ca343e6efdd55fe13dd06e8d0b58cec719b differ
diff --git a/test/de_fuzz/corpus/6679ef7df39422157f8f7c532486535639591896 b/test/de_fuzz/corpus/6679ef7df39422157f8f7c532486535639591896
new file mode 100644
index 00000000..b08d1361
Binary files /dev/null and b/test/de_fuzz/corpus/6679ef7df39422157f8f7c532486535639591896 differ
diff --git a/test/de_fuzz/corpus/667e933f4b5fcf6add80e9f33e1625a9b9e4144d b/test/de_fuzz/corpus/667e933f4b5fcf6add80e9f33e1625a9b9e4144d
new file mode 100644
index 00000000..36406a41
Binary files /dev/null and b/test/de_fuzz/corpus/667e933f4b5fcf6add80e9f33e1625a9b9e4144d differ
diff --git a/test/de_fuzz/corpus/667fbb39a2b29ec968384f46d96470dcb80dc47b b/test/de_fuzz/corpus/667fbb39a2b29ec968384f46d96470dcb80dc47b
new file mode 100644
index 00000000..ede7524a
Binary files /dev/null and b/test/de_fuzz/corpus/667fbb39a2b29ec968384f46d96470dcb80dc47b differ
diff --git a/test/de_fuzz/corpus/669ce41f2afb50bb1221d4cb14c0078cfcef688b b/test/de_fuzz/corpus/669ce41f2afb50bb1221d4cb14c0078cfcef688b
new file mode 100644
index 00000000..4628378f
Binary files /dev/null and b/test/de_fuzz/corpus/669ce41f2afb50bb1221d4cb14c0078cfcef688b differ
diff --git a/test/de_fuzz/corpus/66a667ba2446649d1cda39792dfbbbb006778c5a b/test/de_fuzz/corpus/66a667ba2446649d1cda39792dfbbbb006778c5a
new file mode 100644
index 00000000..9eaaeadd
Binary files /dev/null and b/test/de_fuzz/corpus/66a667ba2446649d1cda39792dfbbbb006778c5a differ
diff --git a/test/de_fuzz/corpus/66abe32444220e95729d83e7d3d5c0d251fcb665 b/test/de_fuzz/corpus/66abe32444220e95729d83e7d3d5c0d251fcb665
new file mode 100644
index 00000000..8c74c4e1
Binary files /dev/null and b/test/de_fuzz/corpus/66abe32444220e95729d83e7d3d5c0d251fcb665 differ
diff --git a/test/de_fuzz/corpus/66d097bbd8512acaf4a568ca340692b02e76d2bd b/test/de_fuzz/corpus/66d097bbd8512acaf4a568ca340692b02e76d2bd
new file mode 100644
index 00000000..7f448403
--- /dev/null
+++ b/test/de_fuzz/corpus/66d097bbd8512acaf4a568ca340692b02e76d2bd
@@ -0,0 +1 @@
+Z(((((((a+)+)+)+)+)+)+)+|Y(((((((a+)+)+)+)+)+)+)+|X(((((((a+)+)+)+)+)+)+)+|W(((((((a+)+)+)+)+)+)+)+|V((((((#a+)+)+)+)+)+)+)+|CZ(((((((a+)+)+)+)+)+)+)+|CY(((((((a+)+)+)+)+)+)+)+|CX(((((((a+)+)+)+)+)+)+)+|CW(((((((a+)+)+)+)+)+)+)+|CV(((((((a+)+)+)+)+)+)+)+|(a+)+bc
\ No newline at end of file
diff --git a/test/de_fuzz/corpus/6707139121109dc3ca066ee40816a65b39fb3cfb b/test/de_fuzz/corpus/6707139121109dc3ca066ee40816a65b39fb3cfb
new file mode 100644
index 00000000..dbb3f285
Binary files /dev/null and b/test/de_fuzz/corpus/6707139121109dc3ca066ee40816a65b39fb3cfb differ
diff --git a/test/de_fuzz/corpus/6709244f3fc581e23b255e058968f30da774afb8 b/test/de_fuzz/corpus/6709244f3fc581e23b255e058968f30da774afb8
new file mode 100644
index 00000000..0da760b8
Binary files /dev/null and b/test/de_fuzz/corpus/6709244f3fc581e23b255e058968f30da774afb8 differ
diff --git a/test/de_fuzz/corpus/670b480d9769fd76c612dda31a1fa8f59398e167 b/test/de_fuzz/corpus/670b480d9769fd76c612dda31a1fa8f59398e167
new file mode 100644
index 00000000..3948c529
Binary files /dev/null and b/test/de_fuzz/corpus/670b480d9769fd76c612dda31a1fa8f59398e167 differ
diff --git a/test/de_fuzz/corpus/6744738ea9bc54fcc48a54fd271e5a52da1af3d8 b/test/de_fuzz/corpus/6744738ea9bc54fcc48a54fd271e5a52da1af3d8
new file mode 100644
index 00000000..7a2937bf
Binary files /dev/null and b/test/de_fuzz/corpus/6744738ea9bc54fcc48a54fd271e5a52da1af3d8 differ
diff --git a/test/de_fuzz/corpus/67599bb1b5d22c1332cbcee8035bd405d425f887 b/test/de_fuzz/corpus/67599bb1b5d22c1332cbcee8035bd405d425f887
new file mode 100644
index 00000000..41b97bcd
Binary files /dev/null and b/test/de_fuzz/corpus/67599bb1b5d22c1332cbcee8035bd405d425f887 differ
diff --git a/test/de_fuzz/corpus/679a80bd6c8c3224500183bb942a2a45319936bc b/test/de_fuzz/corpus/679a80bd6c8c3224500183bb942a2a45319936bc
new file mode 100644
index 00000000..e3d62dcd
Binary files /dev/null and b/test/de_fuzz/corpus/679a80bd6c8c3224500183bb942a2a45319936bc differ
diff --git a/test/de_fuzz/corpus/679b6d01b17d3da42623f57c9d943eb7192759a7 b/test/de_fuzz/corpus/679b6d01b17d3da42623f57c9d943eb7192759a7
new file mode 100644
index 00000000..75736d97
Binary files /dev/null and b/test/de_fuzz/corpus/679b6d01b17d3da42623f57c9d943eb7192759a7 differ
diff --git a/test/de_fuzz/corpus/67cfaf5a2cb59592d300c6d4347eee5c96c223d2 b/test/de_fuzz/corpus/67cfaf5a2cb59592d300c6d4347eee5c96c223d2
new file mode 100644
index 00000000..5a0b992d
Binary files /dev/null and b/test/de_fuzz/corpus/67cfaf5a2cb59592d300c6d4347eee5c96c223d2 differ
diff --git a/test/de_fuzz/corpus/67e5d8eaeeec12c806cc984be6ea681ffbcc394d b/test/de_fuzz/corpus/67e5d8eaeeec12c806cc984be6ea681ffbcc394d
new file mode 100644
index 00000000..5558e45d
Binary files /dev/null and b/test/de_fuzz/corpus/67e5d8eaeeec12c806cc984be6ea681ffbcc394d differ
diff --git a/test/de_fuzz/corpus/67ed9364677de31b1bdd21f16b7dd520df8266a1 b/test/de_fuzz/corpus/67ed9364677de31b1bdd21f16b7dd520df8266a1
new file mode 100644
index 00000000..248e0049
Binary files /dev/null and b/test/de_fuzz/corpus/67ed9364677de31b1bdd21f16b7dd520df8266a1 differ
diff --git a/test/de_fuzz/corpus/68287669e0f7ea2093a6b30c9b992adc3a56993e b/test/de_fuzz/corpus/68287669e0f7ea2093a6b30c9b992adc3a56993e
new file mode 100644
index 00000000..8e930dd8
Binary files /dev/null and b/test/de_fuzz/corpus/68287669e0f7ea2093a6b30c9b992adc3a56993e differ
diff --git a/test/de_fuzz/corpus/68610159d6713d61ed943bf6871cd23d3bd51f03 b/test/de_fuzz/corpus/68610159d6713d61ed943bf6871cd23d3bd51f03
new file mode 100644
index 00000000..be6edb93
Binary files /dev/null and b/test/de_fuzz/corpus/68610159d6713d61ed943bf6871cd23d3bd51f03 differ
diff --git a/test/de_fuzz/corpus/6863fa1e25bb3727c26d69a4758fe5a914c50e03 b/test/de_fuzz/corpus/6863fa1e25bb3727c26d69a4758fe5a914c50e03
new file mode 100644
index 00000000..32b63f43
Binary files /dev/null and b/test/de_fuzz/corpus/6863fa1e25bb3727c26d69a4758fe5a914c50e03 differ
diff --git a/test/de_fuzz/corpus/6894938ff7014f086198583911a2af56cb80021d b/test/de_fuzz/corpus/6894938ff7014f086198583911a2af56cb80021d
new file mode 100644
index 00000000..53a0c1c8
--- /dev/null
+++ b/test/de_fuzz/corpus/6894938ff7014f086198583911a2af56cb80021d
@@ -0,0 +1,192 @@
+'è (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* # optional leading comment
+(?: (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+) # initial word
+(?: (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xfæ\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+) )* # further okay, if led by a period
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* @ (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # initial subdomain
+(?: #
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. # if led by a period...
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # ...further okay
+)*
+# address
+| # or
+(?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+) # one word, optionally followed by....
+(?:
+[^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037] | # atom and space parts, or...
+\(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) | # comments, or...
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+# quoted strings
+)*
+< (?: [\040\t[[:word:]]: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* # leading <
+(?: @ (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # initial subdomain
+(?: #
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. # if led by a period...
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # ...further okay
+)*
+(?: (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* , (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* @ (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # initial subdomain
+(?: #
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. # if led by a period...
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # ...further okay
+)*
+)* # further okay, if led by comma
+: # closing colon
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* )? # optional route
+(?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+) # initial word
+(?: (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+) )* # further okay, if led by a period
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* @ (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # initial subdomain
+(?: #
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. # if led by a period...
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # ...further okay
+)*
+# address spec
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* > # trailing >
+# name and address
+) (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* # optional trailing comment
+
+
\ No newline at end of file
diff --git a/test/de_fuzz/corpus/68a48417e4b5fa1648c2e742de21fb3f1ce12279 b/test/de_fuzz/corpus/68a48417e4b5fa1648c2e742de21fb3f1ce12279
new file mode 100644
index 00000000..f469a0f5
Binary files /dev/null and b/test/de_fuzz/corpus/68a48417e4b5fa1648c2e742de21fb3f1ce12279 differ
diff --git a/test/de_fuzz/corpus/68b8ee9000de7a615e1ea582be5fd41c794bb1d2 b/test/de_fuzz/corpus/68b8ee9000de7a615e1ea582be5fd41c794bb1d2
new file mode 100644
index 00000000..5dba80af
Binary files /dev/null and b/test/de_fuzz/corpus/68b8ee9000de7a615e1ea582be5fd41c794bb1d2 differ
diff --git a/test/de_fuzz/corpus/68ddbe83130a38ec3ba12e2e4604ff698b4b9b91 b/test/de_fuzz/corpus/68ddbe83130a38ec3ba12e2e4604ff698b4b9b91
new file mode 100644
index 00000000..2e42f76f
Binary files /dev/null and b/test/de_fuzz/corpus/68ddbe83130a38ec3ba12e2e4604ff698b4b9b91 differ
diff --git a/test/de_fuzz/corpus/68dee236d0154ccf4a38e9c3889bd606aa686114 b/test/de_fuzz/corpus/68dee236d0154ccf4a38e9c3889bd606aa686114
new file mode 100644
index 00000000..9e9b3114
Binary files /dev/null and b/test/de_fuzz/corpus/68dee236d0154ccf4a38e9c3889bd606aa686114 differ
diff --git a/test/de_fuzz/corpus/6954e4cc3de166f6f5ee515af964329686e43dab b/test/de_fuzz/corpus/6954e4cc3de166f6f5ee515af964329686e43dab
new file mode 100644
index 00000000..38b87696
Binary files /dev/null and b/test/de_fuzz/corpus/6954e4cc3de166f6f5ee515af964329686e43dab differ
diff --git a/test/de_fuzz/corpus/6958352e639f6fafa502428e0844192817eee60f b/test/de_fuzz/corpus/6958352e639f6fafa502428e0844192817eee60f
new file mode 100644
index 00000000..2e8aa49b
Binary files /dev/null and b/test/de_fuzz/corpus/6958352e639f6fafa502428e0844192817eee60f differ
diff --git a/test/de_fuzz/corpus/6973235fb788ac88c905a3c24fe529da144cc6b3 b/test/de_fuzz/corpus/6973235fb788ac88c905a3c24fe529da144cc6b3
new file mode 100644
index 00000000..7335fa23
Binary files /dev/null and b/test/de_fuzz/corpus/6973235fb788ac88c905a3c24fe529da144cc6b3 differ
diff --git a/test/de_fuzz/corpus/69753d23e78cd1bd765ad94095105766227d7c25 b/test/de_fuzz/corpus/69753d23e78cd1bd765ad94095105766227d7c25
new file mode 100644
index 00000000..b25896c7
--- /dev/null
+++ b/test/de_fuzz/corpus/69753d23e78cd1bd765ad94095105766227d7c25
@@ -0,0 +1 @@
+Z(((((((a+)+)+)+)+)+)+)+|Y(((((((a+)+)+)+)+)+)+)+|X((((()+)+)+|X(((((((a+)++)+)+)+)+(|W((((((a+)+)++)+)i+)+)+|V(((((((a+)+)ÿÿ+!\Pd2(a+)+)+)+)+)+)++i+!\Pd2((a+)+)+)+)+)+)+)+(|W((((((a+)+)++)+)i+)+)+|V(((((((a+)+)+!\Pd2(a+)+)+)+)+)+)+)+|(a+)+bc
\ No newline at end of file
diff --git a/test/de_fuzz/corpus/699e32363380d46f883826e8ec41678923b91d03 b/test/de_fuzz/corpus/699e32363380d46f883826e8ec41678923b91d03
new file mode 100644
index 00000000..1348dad4
Binary files /dev/null and b/test/de_fuzz/corpus/699e32363380d46f883826e8ec41678923b91d03 differ
diff --git a/test/de_fuzz/corpus/69a69db2785c489cf18b0149a9ad1093ad58aa50 b/test/de_fuzz/corpus/69a69db2785c489cf18b0149a9ad1093ad58aa50
new file mode 100644
index 00000000..9248c51b
Binary files /dev/null and b/test/de_fuzz/corpus/69a69db2785c489cf18b0149a9ad1093ad58aa50 differ
diff --git a/test/de_fuzz/corpus/69d17fe113ad14aa55990b9baa6b897f5819ca81 b/test/de_fuzz/corpus/69d17fe113ad14aa55990b9baa6b897f5819ca81
new file mode 100644
index 00000000..70e69e17
Binary files /dev/null and b/test/de_fuzz/corpus/69d17fe113ad14aa55990b9baa6b897f5819ca81 differ
diff --git a/test/de_fuzz/corpus/69d73bccf3484f611b852f5d66c05d373efbd3aa b/test/de_fuzz/corpus/69d73bccf3484f611b852f5d66c05d373efbd3aa
new file mode 100644
index 00000000..85c4f2dc
Binary files /dev/null and b/test/de_fuzz/corpus/69d73bccf3484f611b852f5d66c05d373efbd3aa differ
diff --git a/test/de_fuzz/corpus/6a500e40cfc24272d329e7369f4fce66e9f3c718 b/test/de_fuzz/corpus/6a500e40cfc24272d329e7369f4fce66e9f3c718
new file mode 100644
index 00000000..29be196b
Binary files /dev/null and b/test/de_fuzz/corpus/6a500e40cfc24272d329e7369f4fce66e9f3c718 differ
diff --git a/test/de_fuzz/corpus/6ae3a1701a948916d59ad8ee0d19fbd16306e9cc b/test/de_fuzz/corpus/6ae3a1701a948916d59ad8ee0d19fbd16306e9cc
new file mode 100644
index 00000000..3f79d60a
Binary files /dev/null and b/test/de_fuzz/corpus/6ae3a1701a948916d59ad8ee0d19fbd16306e9cc differ
diff --git a/test/de_fuzz/corpus/6af75b4602882338e434538f167d3201eafba95e b/test/de_fuzz/corpus/6af75b4602882338e434538f167d3201eafba95e
new file mode 100644
index 00000000..609f6a76
Binary files /dev/null and b/test/de_fuzz/corpus/6af75b4602882338e434538f167d3201eafba95e differ
diff --git a/test/de_fuzz/corpus/6b34fc53176725380880a6df9fef6069ecfcfca5 b/test/de_fuzz/corpus/6b34fc53176725380880a6df9fef6069ecfcfca5
new file mode 100644
index 00000000..91830052
Binary files /dev/null and b/test/de_fuzz/corpus/6b34fc53176725380880a6df9fef6069ecfcfca5 differ
diff --git a/test/de_fuzz/corpus/6b3bcbb5bf8549e039213d7bdcae3a95749442cb b/test/de_fuzz/corpus/6b3bcbb5bf8549e039213d7bdcae3a95749442cb
new file mode 100644
index 00000000..5f647e86
Binary files /dev/null and b/test/de_fuzz/corpus/6b3bcbb5bf8549e039213d7bdcae3a95749442cb differ
diff --git a/test/de_fuzz/corpus/6b594a8ab963dfa6b9004a0dd93015ef962da907 b/test/de_fuzz/corpus/6b594a8ab963dfa6b9004a0dd93015ef962da907
new file mode 100644
index 00000000..afe43631
Binary files /dev/null and b/test/de_fuzz/corpus/6b594a8ab963dfa6b9004a0dd93015ef962da907 differ
diff --git a/test/de_fuzz/corpus/6b5d38bc0274251af80dec820a2500ba484689d2 b/test/de_fuzz/corpus/6b5d38bc0274251af80dec820a2500ba484689d2
new file mode 100644
index 00000000..5edca636
Binary files /dev/null and b/test/de_fuzz/corpus/6b5d38bc0274251af80dec820a2500ba484689d2 differ
diff --git a/test/de_fuzz/corpus/6b638cc87a2d6d5abd2e5c6ccb91861a1612e1fd b/test/de_fuzz/corpus/6b638cc87a2d6d5abd2e5c6ccb91861a1612e1fd
new file mode 100644
index 00000000..ffa21d11
Binary files /dev/null and b/test/de_fuzz/corpus/6b638cc87a2d6d5abd2e5c6ccb91861a1612e1fd differ
diff --git a/test/de_fuzz/corpus/6b767dd6867820d842009a98f09faa948a5a8cfc b/test/de_fuzz/corpus/6b767dd6867820d842009a98f09faa948a5a8cfc
new file mode 100644
index 00000000..b65f05f0
Binary files /dev/null and b/test/de_fuzz/corpus/6b767dd6867820d842009a98f09faa948a5a8cfc differ
diff --git a/test/de_fuzz/corpus/6bdc206fa58a906067700040c79516cb33a01360 b/test/de_fuzz/corpus/6bdc206fa58a906067700040c79516cb33a01360
new file mode 100644
index 00000000..89aff581
Binary files /dev/null and b/test/de_fuzz/corpus/6bdc206fa58a906067700040c79516cb33a01360 differ
diff --git a/test/de_fuzz/corpus/6be865c8ce0a1a9e905840d49e4bbd28b10ae00b b/test/de_fuzz/corpus/6be865c8ce0a1a9e905840d49e4bbd28b10ae00b
new file mode 100644
index 00000000..b6b4a4b9
Binary files /dev/null and b/test/de_fuzz/corpus/6be865c8ce0a1a9e905840d49e4bbd28b10ae00b differ
diff --git a/test/de_fuzz/corpus/6c2029e93527a6eb6dde810f4bd3114df9bd9c88 b/test/de_fuzz/corpus/6c2029e93527a6eb6dde810f4bd3114df9bd9c88
new file mode 100644
index 00000000..0492d968
Binary files /dev/null and b/test/de_fuzz/corpus/6c2029e93527a6eb6dde810f4bd3114df9bd9c88 differ
diff --git a/test/de_fuzz/corpus/6c21d898c804cf8b0d36bd93a874a3932885cf65 b/test/de_fuzz/corpus/6c21d898c804cf8b0d36bd93a874a3932885cf65
new file mode 100644
index 00000000..45338bf6
Binary files /dev/null and b/test/de_fuzz/corpus/6c21d898c804cf8b0d36bd93a874a3932885cf65 differ
diff --git a/test/de_fuzz/corpus/6c2b72fa79fed47549592af2efcae6ad8bb21a26 b/test/de_fuzz/corpus/6c2b72fa79fed47549592af2efcae6ad8bb21a26
new file mode 100644
index 00000000..65786999
Binary files /dev/null and b/test/de_fuzz/corpus/6c2b72fa79fed47549592af2efcae6ad8bb21a26 differ
diff --git a/test/de_fuzz/corpus/6c5696d782383cfc2a311270af9c46917461357e b/test/de_fuzz/corpus/6c5696d782383cfc2a311270af9c46917461357e
new file mode 100644
index 00000000..2431f79e
Binary files /dev/null and b/test/de_fuzz/corpus/6c5696d782383cfc2a311270af9c46917461357e differ
diff --git a/test/de_fuzz/corpus/6c6ad0b44502bdf0f62e5f5ea879c7a903f6aaab b/test/de_fuzz/corpus/6c6ad0b44502bdf0f62e5f5ea879c7a903f6aaab
new file mode 100644
index 00000000..c93cd057
Binary files /dev/null and b/test/de_fuzz/corpus/6c6ad0b44502bdf0f62e5f5ea879c7a903f6aaab differ
diff --git a/test/de_fuzz/corpus/6c72c96b96f686c8b16c04ac0859b73e1226cecb b/test/de_fuzz/corpus/6c72c96b96f686c8b16c04ac0859b73e1226cecb
new file mode 100644
index 00000000..b040821f
Binary files /dev/null and b/test/de_fuzz/corpus/6c72c96b96f686c8b16c04ac0859b73e1226cecb differ
diff --git a/test/de_fuzz/corpus/6ca2a2716cd00de85faf4aff861f47b3e56d2f5a b/test/de_fuzz/corpus/6ca2a2716cd00de85faf4aff861f47b3e56d2f5a
new file mode 100644
index 00000000..ccdee175
Binary files /dev/null and b/test/de_fuzz/corpus/6ca2a2716cd00de85faf4aff861f47b3e56d2f5a differ
diff --git a/test/de_fuzz/corpus/6cad89c77b4046edb5871712fc697c5e864464d3 b/test/de_fuzz/corpus/6cad89c77b4046edb5871712fc697c5e864464d3
new file mode 100644
index 00000000..bffbf606
Binary files /dev/null and b/test/de_fuzz/corpus/6cad89c77b4046edb5871712fc697c5e864464d3 differ
diff --git a/test/de_fuzz/corpus/6cb782024616742aa54654ccbd251cbec9e0f96d b/test/de_fuzz/corpus/6cb782024616742aa54654ccbd251cbec9e0f96d
new file mode 100644
index 00000000..8cbef261
Binary files /dev/null and b/test/de_fuzz/corpus/6cb782024616742aa54654ccbd251cbec9e0f96d differ
diff --git a/test/de_fuzz/corpus/6cb88b1debfc4dc3488e1329ee9085f9d1132bd2 b/test/de_fuzz/corpus/6cb88b1debfc4dc3488e1329ee9085f9d1132bd2
new file mode 100644
index 00000000..14f90f5f
Binary files /dev/null and b/test/de_fuzz/corpus/6cb88b1debfc4dc3488e1329ee9085f9d1132bd2 differ
diff --git a/test/de_fuzz/corpus/6cd04ac0e253bdef5d78b5f2593c25c8b00a77f7 b/test/de_fuzz/corpus/6cd04ac0e253bdef5d78b5f2593c25c8b00a77f7
new file mode 100644
index 00000000..575c804d
Binary files /dev/null and b/test/de_fuzz/corpus/6cd04ac0e253bdef5d78b5f2593c25c8b00a77f7 differ
diff --git a/test/de_fuzz/corpus/6ce405c33bd60d0fd0e946e99589322529cebda3 b/test/de_fuzz/corpus/6ce405c33bd60d0fd0e946e99589322529cebda3
new file mode 100644
index 00000000..e756d5a0
Binary files /dev/null and b/test/de_fuzz/corpus/6ce405c33bd60d0fd0e946e99589322529cebda3 differ
diff --git a/test/de_fuzz/corpus/6d3d0981d7e58e8935e4067fd97e0d8b3d7bf018 b/test/de_fuzz/corpus/6d3d0981d7e58e8935e4067fd97e0d8b3d7bf018
new file mode 100644
index 00000000..a9f33667
Binary files /dev/null and b/test/de_fuzz/corpus/6d3d0981d7e58e8935e4067fd97e0d8b3d7bf018 differ
diff --git a/test/de_fuzz/corpus/6d88806555bc4ef16e6510a68f4fd266a0da67f6 b/test/de_fuzz/corpus/6d88806555bc4ef16e6510a68f4fd266a0da67f6
new file mode 100644
index 00000000..4bb86ebd
Binary files /dev/null and b/test/de_fuzz/corpus/6d88806555bc4ef16e6510a68f4fd266a0da67f6 differ
diff --git a/test/de_fuzz/corpus/6d8e00f4a147641256510915961441b096c3a94d b/test/de_fuzz/corpus/6d8e00f4a147641256510915961441b096c3a94d
new file mode 100644
index 00000000..76846fbe
Binary files /dev/null and b/test/de_fuzz/corpus/6d8e00f4a147641256510915961441b096c3a94d differ
diff --git a/test/de_fuzz/corpus/6da55f49620d0b040e5718a3031951c7b598e5cd b/test/de_fuzz/corpus/6da55f49620d0b040e5718a3031951c7b598e5cd
new file mode 100644
index 00000000..097c7363
--- /dev/null
+++ b/test/de_fuzz/corpus/6da55f49620d0b040e5718a3031951c7b598e5cd
@@ -0,0 +1,184 @@
+'è (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* # optional leading comment
+(?: (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+) # initial word
+(?: (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] itial subdomain
+(?: #
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. # if led by a period...
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,);:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # ...further okay
+)*
+(?: (?: [\041\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* , (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ial subdomain
+(?: #
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. # if led by a period...
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # ...further okay
+)*
+)* # further okay, if led by comma
+: # closing colon
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* )? # optional route
+(?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+) # initial word
+(?: (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atfm
+|
+"ept backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+) # initial word
+(?: (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] itial subdomain
+(?: #
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. # if led by a period...
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # ...further okay
+)*
+(?: (?: [\041\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* , (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ial subdomain
+(?: #
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. # if led by a period...
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # ...further okay
+)*
+)* # further okay, if led by comma
+: # closing colon
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* )? # optional route
+(?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+) # initial word
+(?: (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+) )* # further okay, if led by a period
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* @ (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # initial subdomain
+(?: #
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. # if led by a period...
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # ...further okay
+)*
+# address spec
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* > # trailing >
+# name and address
+) (?: [\039\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* # optional trailing comment
+
+
\ No newline at end of file
diff --git a/test/de_fuzz/corpus/6de339ce3250fe5d226a5e949449740a7a99af4a b/test/de_fuzz/corpus/6de339ce3250fe5d226a5e949449740a7a99af4a
new file mode 100644
index 00000000..17f617f6
Binary files /dev/null and b/test/de_fuzz/corpus/6de339ce3250fe5d226a5e949449740a7a99af4a differ
diff --git a/test/de_fuzz/corpus/6de64576c38decc0ea4681cc20a692028033390a b/test/de_fuzz/corpus/6de64576c38decc0ea4681cc20a692028033390a
new file mode 100644
index 00000000..cee232c2
Binary files /dev/null and b/test/de_fuzz/corpus/6de64576c38decc0ea4681cc20a692028033390a differ
diff --git a/test/de_fuzz/corpus/6df1758229b22c0a8ddca8b4db4cce893cd9c9af b/test/de_fuzz/corpus/6df1758229b22c0a8ddca8b4db4cce893cd9c9af
new file mode 100644
index 00000000..9947b3ef
Binary files /dev/null and b/test/de_fuzz/corpus/6df1758229b22c0a8ddca8b4db4cce893cd9c9af differ
diff --git a/test/de_fuzz/corpus/6e123eb627afa92d10a36e91704088ac5f9c232c b/test/de_fuzz/corpus/6e123eb627afa92d10a36e91704088ac5f9c232c
new file mode 100644
index 00000000..2ff7e549
Binary files /dev/null and b/test/de_fuzz/corpus/6e123eb627afa92d10a36e91704088ac5f9c232c differ
diff --git a/test/de_fuzz/corpus/6e2239c4ff2573a3922a06fd978ecd69fb6b6447 b/test/de_fuzz/corpus/6e2239c4ff2573a3922a06fd978ecd69fb6b6447
new file mode 100644
index 00000000..a71dd202
Binary files /dev/null and b/test/de_fuzz/corpus/6e2239c4ff2573a3922a06fd978ecd69fb6b6447 differ
diff --git a/test/de_fuzz/corpus/6e2bc2a75710ba6d01eb5cfe23c471bbec696359 b/test/de_fuzz/corpus/6e2bc2a75710ba6d01eb5cfe23c471bbec696359
new file mode 100644
index 00000000..a1cb036e
Binary files /dev/null and b/test/de_fuzz/corpus/6e2bc2a75710ba6d01eb5cfe23c471bbec696359 differ
diff --git a/test/de_fuzz/corpus/6e31e0750292a1715c52fc8a37336a8ec746814f b/test/de_fuzz/corpus/6e31e0750292a1715c52fc8a37336a8ec746814f
new file mode 100644
index 00000000..3f37f9b8
Binary files /dev/null and b/test/de_fuzz/corpus/6e31e0750292a1715c52fc8a37336a8ec746814f differ
diff --git a/test/de_fuzz/corpus/6e3689788ed813faa155728c802e7dd45b37f268 b/test/de_fuzz/corpus/6e3689788ed813faa155728c802e7dd45b37f268
new file mode 100644
index 00000000..4cb8e3a0
Binary files /dev/null and b/test/de_fuzz/corpus/6e3689788ed813faa155728c802e7dd45b37f268 differ
diff --git a/test/de_fuzz/corpus/6e63ce41e4cfb94cee2d58f000927d6bc1df9a2f b/test/de_fuzz/corpus/6e63ce41e4cfb94cee2d58f000927d6bc1df9a2f
new file mode 100644
index 00000000..6263af49
Binary files /dev/null and b/test/de_fuzz/corpus/6e63ce41e4cfb94cee2d58f000927d6bc1df9a2f differ
diff --git a/test/de_fuzz/corpus/6e733952e21efe892c364085e86417440f99ccf5 b/test/de_fuzz/corpus/6e733952e21efe892c364085e86417440f99ccf5
new file mode 100644
index 00000000..1925af01
Binary files /dev/null and b/test/de_fuzz/corpus/6e733952e21efe892c364085e86417440f99ccf5 differ
diff --git a/test/de_fuzz/corpus/6e860203c67069688b4e00bba111a597d7cf95de b/test/de_fuzz/corpus/6e860203c67069688b4e00bba111a597d7cf95de
new file mode 100644
index 00000000..819a6b77
Binary files /dev/null and b/test/de_fuzz/corpus/6e860203c67069688b4e00bba111a597d7cf95de differ
diff --git a/test/de_fuzz/corpus/6e9be3632e9ae607bfc7223c47e0d5fff806f589 b/test/de_fuzz/corpus/6e9be3632e9ae607bfc7223c47e0d5fff806f589
new file mode 100644
index 00000000..8fd37227
Binary files /dev/null and b/test/de_fuzz/corpus/6e9be3632e9ae607bfc7223c47e0d5fff806f589 differ
diff --git a/test/de_fuzz/corpus/6ede25a84321f27b731a02800ecc8f3ea5c4c5e6 b/test/de_fuzz/corpus/6ede25a84321f27b731a02800ecc8f3ea5c4c5e6
new file mode 100644
index 00000000..fa87a68d
--- /dev/null
+++ b/test/de_fuzz/corpus/6ede25a84321f27b731a02800ecc8f3ea5c4c5e6
@@ -0,0 +1 @@
+Z(((((((a+)+)+)+)+)+)+)+|Y(((((((a+)+)+)ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ'ÁÁÁÁÁÁÁÁÁÁÁ+)+)!)+)+|X(((((((a+)+)+)+)+)+)+)+|W(((((((a+)+)+)+)+)+)+)+|V(((((((a+)+)+)+)+)+)+)+|CZ(((((((a+)+)+)+)+)+)+)+|CY(((((((a+)+)+)+)+)+)+)+|CX(((((((a1)+)+)+)+)+)+)+|CW(((((((a+)+)+)+)+)+)+)+|CV(((((((a+)+)+)+)+)+)+)+|(a+)+bc
\ No newline at end of file
diff --git a/test/de_fuzz/corpus/6f12dd37fe05524803e3651c8a41cec17a0bf3b2 b/test/de_fuzz/corpus/6f12dd37fe05524803e3651c8a41cec17a0bf3b2
new file mode 100644
index 00000000..4656f4e4
Binary files /dev/null and b/test/de_fuzz/corpus/6f12dd37fe05524803e3651c8a41cec17a0bf3b2 differ
diff --git a/test/de_fuzz/corpus/6f233ae4efd1b8ea13c829c33efdc6d86845d4d3 b/test/de_fuzz/corpus/6f233ae4efd1b8ea13c829c33efdc6d86845d4d3
new file mode 100644
index 00000000..48868138
Binary files /dev/null and b/test/de_fuzz/corpus/6f233ae4efd1b8ea13c829c33efdc6d86845d4d3 differ
diff --git a/test/de_fuzz/corpus/6f31d35f8c37639e82357a57a0c1907f7cd48cc3 b/test/de_fuzz/corpus/6f31d35f8c37639e82357a57a0c1907f7cd48cc3
new file mode 100644
index 00000000..a795b605
Binary files /dev/null and b/test/de_fuzz/corpus/6f31d35f8c37639e82357a57a0c1907f7cd48cc3 differ
diff --git a/test/de_fuzz/corpus/6fbb6ca70d8a2ee81582cec54ae071c9802a1663 b/test/de_fuzz/corpus/6fbb6ca70d8a2ee81582cec54ae071c9802a1663
new file mode 100644
index 00000000..a6e42c1f
Binary files /dev/null and b/test/de_fuzz/corpus/6fbb6ca70d8a2ee81582cec54ae071c9802a1663 differ
diff --git a/test/de_fuzz/corpus/6fc31db258676abcab36a066b8708654d56c4d86 b/test/de_fuzz/corpus/6fc31db258676abcab36a066b8708654d56c4d86
new file mode 100644
index 00000000..1d58c0a9
Binary files /dev/null and b/test/de_fuzz/corpus/6fc31db258676abcab36a066b8708654d56c4d86 differ
diff --git a/test/de_fuzz/corpus/700bd68c8f04680e065067ed6bc9b75c52263573 b/test/de_fuzz/corpus/700bd68c8f04680e065067ed6bc9b75c52263573
new file mode 100644
index 00000000..5335fa76
Binary files /dev/null and b/test/de_fuzz/corpus/700bd68c8f04680e065067ed6bc9b75c52263573 differ
diff --git a/test/de_fuzz/corpus/703a1e49ea1092352af8bf705d5d0c1e78412a96 b/test/de_fuzz/corpus/703a1e49ea1092352af8bf705d5d0c1e78412a96
new file mode 100644
index 00000000..26b1b029
Binary files /dev/null and b/test/de_fuzz/corpus/703a1e49ea1092352af8bf705d5d0c1e78412a96 differ
diff --git a/test/de_fuzz/corpus/7067b05446790894a921eae8e0aef96b47e367e8 b/test/de_fuzz/corpus/7067b05446790894a921eae8e0aef96b47e367e8
new file mode 100644
index 00000000..e697693c
Binary files /dev/null and b/test/de_fuzz/corpus/7067b05446790894a921eae8e0aef96b47e367e8 differ
diff --git a/test/de_fuzz/corpus/70779067fc1dfdcdbede542fe46686e354e877b5 b/test/de_fuzz/corpus/70779067fc1dfdcdbede542fe46686e354e877b5
new file mode 100644
index 00000000..19213a24
Binary files /dev/null and b/test/de_fuzz/corpus/70779067fc1dfdcdbede542fe46686e354e877b5 differ
diff --git a/test/de_fuzz/corpus/707cf9ae24137c5d451ba7eb38156d98b081616b b/test/de_fuzz/corpus/707cf9ae24137c5d451ba7eb38156d98b081616b
new file mode 100644
index 00000000..db5bad55
Binary files /dev/null and b/test/de_fuzz/corpus/707cf9ae24137c5d451ba7eb38156d98b081616b differ
diff --git a/test/de_fuzz/corpus/709a87f148311095502a1478c8ace29b39a1d96d b/test/de_fuzz/corpus/709a87f148311095502a1478c8ace29b39a1d96d
new file mode 100644
index 00000000..ce52e688
Binary files /dev/null and b/test/de_fuzz/corpus/709a87f148311095502a1478c8ace29b39a1d96d differ
diff --git a/test/de_fuzz/corpus/70aa4bb8becefebba710ec419150e2c048f95901 b/test/de_fuzz/corpus/70aa4bb8becefebba710ec419150e2c048f95901
new file mode 100644
index 00000000..56bfe713
Binary files /dev/null and b/test/de_fuzz/corpus/70aa4bb8becefebba710ec419150e2c048f95901 differ
diff --git a/test/de_fuzz/corpus/70cb0692492eb4325811f9da3612a717a3e1a654 b/test/de_fuzz/corpus/70cb0692492eb4325811f9da3612a717a3e1a654
new file mode 100644
index 00000000..7d9a43ea
Binary files /dev/null and b/test/de_fuzz/corpus/70cb0692492eb4325811f9da3612a717a3e1a654 differ
diff --git a/test/de_fuzz/corpus/70d85990bc7700d7247c0513383dc3559dd4b78e b/test/de_fuzz/corpus/70d85990bc7700d7247c0513383dc3559dd4b78e
new file mode 100644
index 00000000..7122432f
Binary files /dev/null and b/test/de_fuzz/corpus/70d85990bc7700d7247c0513383dc3559dd4b78e differ
diff --git a/test/de_fuzz/corpus/70d8af0bba6886a163fe77483379942a2a5b587d b/test/de_fuzz/corpus/70d8af0bba6886a163fe77483379942a2a5b587d
new file mode 100644
index 00000000..789703ea
Binary files /dev/null and b/test/de_fuzz/corpus/70d8af0bba6886a163fe77483379942a2a5b587d differ
diff --git a/test/de_fuzz/corpus/70d94410b443b46c0f686fc1fa082f9bad42071c b/test/de_fuzz/corpus/70d94410b443b46c0f686fc1fa082f9bad42071c
new file mode 100644
index 00000000..93b4cf70
Binary files /dev/null and b/test/de_fuzz/corpus/70d94410b443b46c0f686fc1fa082f9bad42071c differ
diff --git a/test/de_fuzz/corpus/70e3b198b0380529480e2bbf57523598cd505898 b/test/de_fuzz/corpus/70e3b198b0380529480e2bbf57523598cd505898
new file mode 100644
index 00000000..2a8d2af9
Binary files /dev/null and b/test/de_fuzz/corpus/70e3b198b0380529480e2bbf57523598cd505898 differ
diff --git a/test/de_fuzz/corpus/70fd221eb0e932fe59b698bc81eaaac9d6203bb4 b/test/de_fuzz/corpus/70fd221eb0e932fe59b698bc81eaaac9d6203bb4
new file mode 100644
index 00000000..0d8beab0
Binary files /dev/null and b/test/de_fuzz/corpus/70fd221eb0e932fe59b698bc81eaaac9d6203bb4 differ
diff --git a/test/de_fuzz/corpus/710f9a3e40b5d8a536edbf0196b120d8a41c8612 b/test/de_fuzz/corpus/710f9a3e40b5d8a536edbf0196b120d8a41c8612
new file mode 100644
index 00000000..ea139e3a
Binary files /dev/null and b/test/de_fuzz/corpus/710f9a3e40b5d8a536edbf0196b120d8a41c8612 differ
diff --git a/test/de_fuzz/corpus/71366389e318189258fa853008a7f4c708f8f852 b/test/de_fuzz/corpus/71366389e318189258fa853008a7f4c708f8f852
new file mode 100644
index 00000000..652e3400
Binary files /dev/null and b/test/de_fuzz/corpus/71366389e318189258fa853008a7f4c708f8f852 differ
diff --git a/test/de_fuzz/corpus/715f59e37be7c682ca879d0d29c9981369774f28 b/test/de_fuzz/corpus/715f59e37be7c682ca879d0d29c9981369774f28
new file mode 100644
index 00000000..7d88206c
Binary files /dev/null and b/test/de_fuzz/corpus/715f59e37be7c682ca879d0d29c9981369774f28 differ
diff --git a/test/de_fuzz/corpus/7199377d73ef4eec73a81fee954e85251fe8a9a6 b/test/de_fuzz/corpus/7199377d73ef4eec73a81fee954e85251fe8a9a6
new file mode 100644
index 00000000..7c59a0ee
Binary files /dev/null and b/test/de_fuzz/corpus/7199377d73ef4eec73a81fee954e85251fe8a9a6 differ
diff --git a/test/de_fuzz/corpus/71eb7ce48a88395325d5ce37491407bc60303d4f b/test/de_fuzz/corpus/71eb7ce48a88395325d5ce37491407bc60303d4f
new file mode 100644
index 00000000..18e10f3c
Binary files /dev/null and b/test/de_fuzz/corpus/71eb7ce48a88395325d5ce37491407bc60303d4f differ
diff --git a/test/de_fuzz/corpus/72635d5f0c642b92fc451624aefa07ff6d1e79ae b/test/de_fuzz/corpus/72635d5f0c642b92fc451624aefa07ff6d1e79ae
new file mode 100644
index 00000000..c40eaf4c
Binary files /dev/null and b/test/de_fuzz/corpus/72635d5f0c642b92fc451624aefa07ff6d1e79ae differ
diff --git a/test/de_fuzz/corpus/72ea0d1eb4c3591690a32cf895ae439d86c91f42 b/test/de_fuzz/corpus/72ea0d1eb4c3591690a32cf895ae439d86c91f42
new file mode 100644
index 00000000..6e6b5ffc
Binary files /dev/null and b/test/de_fuzz/corpus/72ea0d1eb4c3591690a32cf895ae439d86c91f42 differ
diff --git a/test/de_fuzz/corpus/734229abb5c99e233a2f0c03b91f00c8d650ad14 b/test/de_fuzz/corpus/734229abb5c99e233a2f0c03b91f00c8d650ad14
new file mode 100644
index 00000000..f4efc2d2
Binary files /dev/null and b/test/de_fuzz/corpus/734229abb5c99e233a2f0c03b91f00c8d650ad14 differ
diff --git a/test/de_fuzz/corpus/7345a5f3c29966e3cb94090a3c9c446f9b87d525 b/test/de_fuzz/corpus/7345a5f3c29966e3cb94090a3c9c446f9b87d525
new file mode 100644
index 00000000..cd04fb23
Binary files /dev/null and b/test/de_fuzz/corpus/7345a5f3c29966e3cb94090a3c9c446f9b87d525 differ
diff --git a/test/de_fuzz/corpus/734814176c9b849b282e1ef85b09b5f15dd8dcd6 b/test/de_fuzz/corpus/734814176c9b849b282e1ef85b09b5f15dd8dcd6
new file mode 100644
index 00000000..aa7533b3
Binary files /dev/null and b/test/de_fuzz/corpus/734814176c9b849b282e1ef85b09b5f15dd8dcd6 differ
diff --git a/test/de_fuzz/corpus/735fc6f158c2738061860bd29342984d1ab5d176 b/test/de_fuzz/corpus/735fc6f158c2738061860bd29342984d1ab5d176
new file mode 100644
index 00000000..28efcd5e
Binary files /dev/null and b/test/de_fuzz/corpus/735fc6f158c2738061860bd29342984d1ab5d176 differ
diff --git a/test/de_fuzz/corpus/737b6f4335b3c916e56a879f7b8925cd653d859e b/test/de_fuzz/corpus/737b6f4335b3c916e56a879f7b8925cd653d859e
new file mode 100644
index 00000000..aa97f0a3
Binary files /dev/null and b/test/de_fuzz/corpus/737b6f4335b3c916e56a879f7b8925cd653d859e differ
diff --git a/test/de_fuzz/corpus/738bdcf9e050016d7e94421a976141bcf337ec09 b/test/de_fuzz/corpus/738bdcf9e050016d7e94421a976141bcf337ec09
new file mode 100644
index 00000000..0b27c78a
Binary files /dev/null and b/test/de_fuzz/corpus/738bdcf9e050016d7e94421a976141bcf337ec09 differ
diff --git a/test/de_fuzz/corpus/7394217f8d9bd1f706e3154ae9ed47055fca3397 b/test/de_fuzz/corpus/7394217f8d9bd1f706e3154ae9ed47055fca3397
new file mode 100644
index 00000000..ecbd949a
Binary files /dev/null and b/test/de_fuzz/corpus/7394217f8d9bd1f706e3154ae9ed47055fca3397 differ
diff --git a/test/de_fuzz/corpus/73a3c16c1beec7ba73e18ab6efae5a59a6b458cd b/test/de_fuzz/corpus/73a3c16c1beec7ba73e18ab6efae5a59a6b458cd
new file mode 100644
index 00000000..9c6b1ebb
Binary files /dev/null and b/test/de_fuzz/corpus/73a3c16c1beec7ba73e18ab6efae5a59a6b458cd differ
diff --git a/test/de_fuzz/corpus/73c4629dc5c75509e999fd647f51e9b19ea32824 b/test/de_fuzz/corpus/73c4629dc5c75509e999fd647f51e9b19ea32824
new file mode 100644
index 00000000..ab410f8f
Binary files /dev/null and b/test/de_fuzz/corpus/73c4629dc5c75509e999fd647f51e9b19ea32824 differ
diff --git a/test/de_fuzz/corpus/73cb6c8064aaab69ed3b8c25e7a994ebbfe9379c b/test/de_fuzz/corpus/73cb6c8064aaab69ed3b8c25e7a994ebbfe9379c
new file mode 100644
index 00000000..9eda3ef5
Binary files /dev/null and b/test/de_fuzz/corpus/73cb6c8064aaab69ed3b8c25e7a994ebbfe9379c differ
diff --git a/test/de_fuzz/corpus/73cbd15cfd29d5d9b07aae2f85cf9d9bc9677fa4 b/test/de_fuzz/corpus/73cbd15cfd29d5d9b07aae2f85cf9d9bc9677fa4
new file mode 100644
index 00000000..646c3e9d
--- /dev/null
+++ b/test/de_fuzz/corpus/73cbd15cfd29d5d9b07aae2f85cf9d9bc9677fa4
@@ -0,0 +1 @@
+8^\l*(?:((.*((.)\W)*(?3)\W*\4|\WM*))\W*$T\W*(?3)\W*\4|\W)ox \x{13} \x{13}
\ No newline at end of file
diff --git a/test/de_fuzz/corpus/73dd63468f6f36999b53b8cf24a1044d51d3d31c b/test/de_fuzz/corpus/73dd63468f6f36999b53b8cf24a1044d51d3d31c
new file mode 100644
index 00000000..4d9d9ded
Binary files /dev/null and b/test/de_fuzz/corpus/73dd63468f6f36999b53b8cf24a1044d51d3d31c differ
diff --git a/test/de_fuzz/corpus/73f364054006ca5eae92feec9d8a105015f0d032 b/test/de_fuzz/corpus/73f364054006ca5eae92feec9d8a105015f0d032
new file mode 100644
index 00000000..bf36a03f
Binary files /dev/null and b/test/de_fuzz/corpus/73f364054006ca5eae92feec9d8a105015f0d032 differ
diff --git a/test/de_fuzz/corpus/740d094789662f57665c9e8f931064e7817849c1 b/test/de_fuzz/corpus/740d094789662f57665c9e8f931064e7817849c1
new file mode 100644
index 00000000..566c73aa
Binary files /dev/null and b/test/de_fuzz/corpus/740d094789662f57665c9e8f931064e7817849c1 differ
diff --git a/test/de_fuzz/corpus/7421244d7e4c4984343ab8736b0d4df683112260 b/test/de_fuzz/corpus/7421244d7e4c4984343ab8736b0d4df683112260
new file mode 100644
index 00000000..64bad304
Binary files /dev/null and b/test/de_fuzz/corpus/7421244d7e4c4984343ab8736b0d4df683112260 differ
diff --git a/test/de_fuzz/corpus/744ca5120981fe49a2ff8bf777cb3d40aeee1e75 b/test/de_fuzz/corpus/744ca5120981fe49a2ff8bf777cb3d40aeee1e75
new file mode 100644
index 00000000..2664d8b8
Binary files /dev/null and b/test/de_fuzz/corpus/744ca5120981fe49a2ff8bf777cb3d40aeee1e75 differ
diff --git a/test/de_fuzz/corpus/7451ec71b671a1c29833fc72d83b386015bedf46 b/test/de_fuzz/corpus/7451ec71b671a1c29833fc72d83b386015bedf46
new file mode 100644
index 00000000..3fdb1cc8
--- /dev/null
+++ b/test/de_fuzz/corpus/7451ec71b671a1c29833fc72d83b386015bedf46
@@ -0,0 +1 @@
+[[:space:]]ef][g(\vijÿÿÿÿ[g(\vij][kl][m(*THEspace:]]ef][g(\vijÿÿÿÿ[g(\vij][kl][m(*THENN)ac
\ No newline at end of file
diff --git a/test/de_fuzz/corpus/747ddbb5284961ea9f162b5b2af6391d1f8544f9 b/test/de_fuzz/corpus/747ddbb5284961ea9f162b5b2af6391d1f8544f9
new file mode 100644
index 00000000..3b95f8cb
Binary files /dev/null and b/test/de_fuzz/corpus/747ddbb5284961ea9f162b5b2af6391d1f8544f9 differ
diff --git a/test/de_fuzz/corpus/74a27679a3da7562a8f9f6b8f1e11794f99252df b/test/de_fuzz/corpus/74a27679a3da7562a8f9f6b8f1e11794f99252df
new file mode 100644
index 00000000..b0745ff6
Binary files /dev/null and b/test/de_fuzz/corpus/74a27679a3da7562a8f9f6b8f1e11794f99252df differ
diff --git a/test/de_fuzz/corpus/74aa947b500092a44d82d600826021729b59e409 b/test/de_fuzz/corpus/74aa947b500092a44d82d600826021729b59e409
new file mode 100644
index 00000000..53bb2460
--- /dev/null
+++ b/test/de_fuzz/corpus/74aa947b500092a44d82d600826021729b59e409
@@ -0,0 +1 @@
+\b(((((((a+)+)+)+)+)+)+)+|Y(((((((a+)+)+)+)+)+)+)+|X((((()+)+)+|X(((((((a+)+)+)+)+)+)+)+(|W((((((a+)+)++)+)i+)+)+|V(((((((a+)|Y(((((((a+)+)+)+)+)+)+)+|X((((()+)+)+|X(((((((a+)+)+)+)+)+)+)+(|W((((((a+)+)++)+)i+)+)+|V(((((((a+)+)+!\Pd4((a+)+)+)+)+)+)+)+(|W((((((a+)+)++)+)i+)+)+|V(((((((a+)+)+!\Pd2(a+)+)+)+)+)+)++)+!\Pd2((a+)+)+)+)+)+)+)+(|W((((((a+)+)++)+)i+)+)+|V(((((((a+)+)+!\Pd2(a+)+)((((()+)+)+|X(((((((a+)+)+)+)+)+)+)+(|W((((((a+)+)++)+)i+)+)+|V(((((((a+)|Y(((((((a+)+)+)+)+)+)+)+|X((((()+)+)+|X(((((((a+)+)+)+)+)+)+)+(|W((((((a+)+)++)+)i+)+)+|V(((((((a+)+)+!\Pd4((a+)+)+)+)+)+)+)+(|W((((((a+)+)++)+)i+)+)+|V(((((((a+)+)+!\Pd2(a+)+)+)+)+)+)+)+)+)+)+)+|(a+)+bc(((((a+)+)+)+)+)+)+)+(|W((((((a+)+)++)+)i+)+)+|V(((((((a+)|Y(((((((a+)+)+)+)+)+)+)+|X((((()+)+)+|X(((((((a+)+)+)+)+)+)+)+(|W((((((a+)+)++)+)i+)+)+|V(((((((a+)+)+!\Pd4((a+)+)+)+)+)+)+)+(|W((((((a+)+)++)+)i+)+)+|V(((((((a+)+)+!\Pd2(a+)+)+)+)+)+)++)+!\Pd2((a+)+)+)+)+)+)+)+(|W((((((a+)+)++)+)i+)+)+|V(((((((a+)+)+!\Pd2(a+)+)((((()+)+)+|X(((((((a+)+)+)+)+)+)+)+(|W(((|X(((((((a+)+)+)+)+)+)+)+(|W((((((a+)+)++)+)i+)+)+|V(((((((a+)|Y(((((((a+)+)+)+)+)+)+)((((((a+)+)+)+)+)+)+)+|Y(((((((a+)+)+)+)+)+)+)+|X((((()+)+)+|X(((((((a+)+)+)+)+)+)+)+(|W((((((a+)+)++)+)i+)+)+|V(((((((a+)|Y(((((((a+)+)+)+)+)+)+)+|X((((()+)+)+|X(((((((a+)+)+)+)+)+)+)+(|W((((((a+)+)++)+)i+)+)+|V(((((((a+)+)+!\Pd4((a+)+)+)+)+)+)+)+(|W((((((a+)+)++)+)i+)+)+|V(((((((a+)+)+!\Pd2(a+)+)+)+)+)+)++)+!\Pd2((a+)+)+)+)+)+)+)+(|W((((((a+)+)++)+)i+)+)+|V(((((((a+)+)+!\Pd2(a+)+)((((()+)+)+|X(((((((a+)+)+)+)+)+)+)+(|W((((((a+)+)++)+)i+)+)+|V(((((((a+)|Y(((((((a+)+)+)+)+)+)+)+|X((((()+)+)+|X(((((((a+)+)+)+)+)+)+)+(|W((((((a+)+)++)+)i+)+)+|V(((((((a+)+)+!\Pd4((a+)+)+)+)+)+)+)+(|W((((((a+)+)++)+)i+)+)+|V(((((((a+)+)+!\Pd2(a+)+)+)+)+)+)+)+)+)+)+)+|(a+)+bc(((((a+)+)+)+)+)+)+)+(|W((((((a+)+)++)+)i+)+)+|V(((((((a+)|Y(((((((a+)+)+)+)+)+)+)+|X((((()+)+)+|X(((((((a+)+)+)+)+)+)+)+(|W((((((a+)+)++)+)i+)+)+|V(((((((a+)+)+!\Pd4((a+)+)+)+)+)+)+)+(|W((((((a+)+)++)+)i+)+)+|V(((((((a+)+)+!\Pd2(a+)+)+)+)+)+)++)+!\Pd2((a+)+)+)+)+)+)+)+(|W((((((a+)+)++)+)i+)+)+|V(((((((a+)+)+!\Pd2(a+)+)((((()+)+)+|X(((((((a+)+)+)+)+)+)+)+(|W(((|X(((((((a+)+)+)+)+)+)+)+(|W((((((a+)+)++)+)i+)+)+|V(((((((a+)|Y(((((((a+)+)+)+)+)+)+)+|X((((()+)+)+|X(((((((a+)+)+)+)+)+)+)+(|W((((((a+)+)++)+)i+)+)+|V(((((((a+)+)+!\Pd4((a+)+)+)+)+)+)+)+(|W((((((a+)+)++)+)i+)+)+|V(((((((a+)+)+!\Pd2(a+)+)+)+)+)+)++)+!\Pd2((a+)+)+)+)+)+)+)+(|W((((((a+)+)++)+)i+)+)+|V(((((((a+)+)+!\Pd2(a+)+)((((()+)+)+|X(((((((a+)+)+)+)+)+)+)+(|W((((((a+)+)++)+)i+)+)+|V(((((((a+)|Y(((((((a+)+)+)+)+)+)+)+|X((((()+)+)+|X(((((((a+)+)+)+)+)+)+)+(|W((((((a+)+)++)+)i+)+)+|V(((((((a+)+)+!\Pd4((a+)+)+)+)+)+)+)+(|W((((((a+)+)++)+)i+)+)+|V(((((((a+)+)+!\Pd2(a+)+)+)+)+)+)+)+)+)+)+)+|(a+)+bc(((((a+)+)+)+)+)+)+)+(|W((((((a+)+)++)+(((a+)+)++)+)i+)+)+|V(((((((a+)|Y(((((((a+)+)+)+((((((a+)+)++)+)i+)+)+|V(((((((a+)|Y(((((((a+)+)+)+)+)+)+)+|X((((()+)+)+|X(((((((a+)+)+)+)+)+)+)+(|W((((((a+)+)++)+)i+)+)+|V(((((((a+)+)+!\Pd4((a+)+)+)+)+)+)+)+(|W((((((a+)+)++|X((((()+)+)+|X(((((((a+)+)+)+)+)+)+)+(|W((((((a+)+)++)+)i+)+)+|V(((((((a+)+)+!\Pd4((a+)+)+)+)+)+)+)+(|W((((((a+)+)++)+)i+)+)+|V(((((((a+)+)+!\Pd2(a+)+)+)+)+)+)++)+!\Pd2((a+)+)+)+)+)+)+)+(|W((((((a+)+)++)+)i+)+)+|V(((((((a+)+)+!\Pd2(a+)+)((((()+)+)+|X(((((((a+)+)+)+)+)+)+)+(|W((((((a+)+)++)+)i+)+)+|V(((((((a+)|Y(((((((a+)+)+)+)+)+)+)+|X((((()+)+)+|X(((((((a+)+)+)+)+)+)+)+(|W((((((a+)+)++)+)i+)+)+|V(((((((a+)+)+!\Pd4((a+)+)+)+)+)+)+)+(|W((((((a+)+)++)+)i+)+)+|V(((((((a+)+)+!\Pd2(a+)+)+)+)+)+)+)+)+)+)+)+|(a+)+bc(((((a+)+)+)+)+)+)+)+(|W((((((a+)+)++)+(((a+)+)++)+)i+)+)+|V(((((((a+)|Y(((((((a+)+)+)+((((((a+)+)++)+)i+)+)+|V(((((((a+)|Y(((((((a+)+)+)+)+)+)+)+|X((((()+)+)+|X(((((((a+)+)+)+)+)+)+)+(|W((((((a+)+)++)+)i+)+)+|V(((((((a+)+)+!\Pd4((a+)+)+)+)+)+)+)+(|W((((((a+)+)++)+)i+)+)+|V(((((((a+)+)+!\Pd2(a+)+)+)+)+)+)++)+!\Pd2((a+)+)+)+)+)+)+)+(|W((((((a+)+)++)+)i+)+)+|V(((((((a+)+)+!\Pd2(a+)+)((((()+)+)+|X(((((((a+)+)+)+)+)+)+)+(|W(((|X(((((((a+)+)+)+)+)+)+)+(|W((((((a+)+)++)+)i+)+)+|V(((((((a+)|Y(((((((a+)+)+)+)+)+)+)+)+)+)+|X((((()+)+)+|X(((((((a+)+)+)+)+)+)+)+(|W((((((a+)+)++)+3i+)+)+|V(((((((a+)+)+!\Pd4((a+)+)+)+)+)+)+)+
\ No newline at end of file
diff --git a/test/de_fuzz/corpus/74af053a7bd59e792806e054775f9801e54b3e0d b/test/de_fuzz/corpus/74af053a7bd59e792806e054775f9801e54b3e0d
new file mode 100644
index 00000000..113b4539
Binary files /dev/null and b/test/de_fuzz/corpus/74af053a7bd59e792806e054775f9801e54b3e0d differ
diff --git a/test/de_fuzz/corpus/74b5a323ae41cb386b1596c9b81bb0b02d550c19 b/test/de_fuzz/corpus/74b5a323ae41cb386b1596c9b81bb0b02d550c19
new file mode 100644
index 00000000..53f8216c
Binary files /dev/null and b/test/de_fuzz/corpus/74b5a323ae41cb386b1596c9b81bb0b02d550c19 differ
diff --git a/test/de_fuzz/corpus/74b71cfa17e74cc2e6681f7460e7dad710436d13 b/test/de_fuzz/corpus/74b71cfa17e74cc2e6681f7460e7dad710436d13
new file mode 100644
index 00000000..d0eda9e3
Binary files /dev/null and b/test/de_fuzz/corpus/74b71cfa17e74cc2e6681f7460e7dad710436d13 differ
diff --git a/test/de_fuzz/corpus/750a813bb2b9813dd95e078157e7732fd56a9e3b b/test/de_fuzz/corpus/750a813bb2b9813dd95e078157e7732fd56a9e3b
new file mode 100644
index 00000000..72002c80
Binary files /dev/null and b/test/de_fuzz/corpus/750a813bb2b9813dd95e078157e7732fd56a9e3b differ
diff --git a/test/de_fuzz/corpus/7552726f9256a4ef330fd1d0bea3b4d39091f937 b/test/de_fuzz/corpus/7552726f9256a4ef330fd1d0bea3b4d39091f937
new file mode 100644
index 00000000..53d6de3f
Binary files /dev/null and b/test/de_fuzz/corpus/7552726f9256a4ef330fd1d0bea3b4d39091f937 differ
diff --git a/test/de_fuzz/corpus/759671a8554a9c4b3a2ce8196cc30edd0830f7c2 b/test/de_fuzz/corpus/759671a8554a9c4b3a2ce8196cc30edd0830f7c2
new file mode 100644
index 00000000..2509ad35
Binary files /dev/null and b/test/de_fuzz/corpus/759671a8554a9c4b3a2ce8196cc30edd0830f7c2 differ
diff --git a/test/de_fuzz/corpus/75d3412a78fe937f3bef2bd5f32969bf88956226 b/test/de_fuzz/corpus/75d3412a78fe937f3bef2bd5f32969bf88956226
new file mode 100644
index 00000000..3f430046
Binary files /dev/null and b/test/de_fuzz/corpus/75d3412a78fe937f3bef2bd5f32969bf88956226 differ
diff --git a/test/de_fuzz/corpus/75dc86d33ebcb2d1ee0a95ee460e9082023303ca b/test/de_fuzz/corpus/75dc86d33ebcb2d1ee0a95ee460e9082023303ca
new file mode 100644
index 00000000..192d3be0
Binary files /dev/null and b/test/de_fuzz/corpus/75dc86d33ebcb2d1ee0a95ee460e9082023303ca differ
diff --git a/test/de_fuzz/corpus/75dfe85ba570bd2eae45af9f2c99b78d44ae3450 b/test/de_fuzz/corpus/75dfe85ba570bd2eae45af9f2c99b78d44ae3450
new file mode 100644
index 00000000..c5f81092
Binary files /dev/null and b/test/de_fuzz/corpus/75dfe85ba570bd2eae45af9f2c99b78d44ae3450 differ
diff --git a/test/de_fuzz/corpus/7615e60e92c26cf5132da9abf8ff9fe8967ec598 b/test/de_fuzz/corpus/7615e60e92c26cf5132da9abf8ff9fe8967ec598
new file mode 100644
index 00000000..31f4c95d
Binary files /dev/null and b/test/de_fuzz/corpus/7615e60e92c26cf5132da9abf8ff9fe8967ec598 differ
diff --git a/test/de_fuzz/corpus/761afab662dee2cb4009dee7aa2a3cb26f33736a b/test/de_fuzz/corpus/761afab662dee2cb4009dee7aa2a3cb26f33736a
new file mode 100644
index 00000000..1caae795
Binary files /dev/null and b/test/de_fuzz/corpus/761afab662dee2cb4009dee7aa2a3cb26f33736a differ
diff --git a/test/de_fuzz/corpus/7622ef0c98ccbdd0901daa3f9a66553d2e0e9087 b/test/de_fuzz/corpus/7622ef0c98ccbdd0901daa3f9a66553d2e0e9087
new file mode 100644
index 00000000..93515e3a
Binary files /dev/null and b/test/de_fuzz/corpus/7622ef0c98ccbdd0901daa3f9a66553d2e0e9087 differ
diff --git a/test/de_fuzz/corpus/7624262679a3cdb3dca1132045f4dcecbb58093e b/test/de_fuzz/corpus/7624262679a3cdb3dca1132045f4dcecbb58093e
new file mode 100644
index 00000000..3083fafa
Binary files /dev/null and b/test/de_fuzz/corpus/7624262679a3cdb3dca1132045f4dcecbb58093e differ
diff --git a/test/de_fuzz/corpus/7627738cae32b5a2418ef4fa99981e6e904c90a0 b/test/de_fuzz/corpus/7627738cae32b5a2418ef4fa99981e6e904c90a0
new file mode 100644
index 00000000..73791df3
Binary files /dev/null and b/test/de_fuzz/corpus/7627738cae32b5a2418ef4fa99981e6e904c90a0 differ
diff --git a/test/de_fuzz/corpus/764ea8276bfa1d6b423b1d8f3747372f75b0c1a3 b/test/de_fuzz/corpus/764ea8276bfa1d6b423b1d8f3747372f75b0c1a3
new file mode 100644
index 00000000..e5780578
Binary files /dev/null and b/test/de_fuzz/corpus/764ea8276bfa1d6b423b1d8f3747372f75b0c1a3 differ
diff --git a/test/de_fuzz/corpus/7684b875e87280014c270f4e7fd274895e42ea26 b/test/de_fuzz/corpus/7684b875e87280014c270f4e7fd274895e42ea26
new file mode 100644
index 00000000..f4d6137d
Binary files /dev/null and b/test/de_fuzz/corpus/7684b875e87280014c270f4e7fd274895e42ea26 differ
diff --git a/test/de_fuzz/corpus/7698fb435334d33f0213566dec4cf3acad5e211f b/test/de_fuzz/corpus/7698fb435334d33f0213566dec4cf3acad5e211f
new file mode 100644
index 00000000..24e901a8
Binary files /dev/null and b/test/de_fuzz/corpus/7698fb435334d33f0213566dec4cf3acad5e211f differ
diff --git a/test/de_fuzz/corpus/76cd162250fb7923827df56f4adca7ca03297372 b/test/de_fuzz/corpus/76cd162250fb7923827df56f4adca7ca03297372
new file mode 100644
index 00000000..a109b521
Binary files /dev/null and b/test/de_fuzz/corpus/76cd162250fb7923827df56f4adca7ca03297372 differ
diff --git a/test/de_fuzz/corpus/7722528a3278bb0d6491cfaea382a7aef7320aea b/test/de_fuzz/corpus/7722528a3278bb0d6491cfaea382a7aef7320aea
new file mode 100644
index 00000000..78a9089b
Binary files /dev/null and b/test/de_fuzz/corpus/7722528a3278bb0d6491cfaea382a7aef7320aea differ
diff --git a/test/de_fuzz/corpus/772e7814f86562e147b36a08a942c9d01c586b22 b/test/de_fuzz/corpus/772e7814f86562e147b36a08a942c9d01c586b22
new file mode 100644
index 00000000..17e1735f
Binary files /dev/null and b/test/de_fuzz/corpus/772e7814f86562e147b36a08a942c9d01c586b22 differ
diff --git a/test/de_fuzz/corpus/7735167887df670c0570ee2cfb684ed0b42dbbfa b/test/de_fuzz/corpus/7735167887df670c0570ee2cfb684ed0b42dbbfa
new file mode 100644
index 00000000..5c0075b6
Binary files /dev/null and b/test/de_fuzz/corpus/7735167887df670c0570ee2cfb684ed0b42dbbfa differ
diff --git a/test/de_fuzz/corpus/774ca049b9a120f9297ba701ab92bc4f2d377695 b/test/de_fuzz/corpus/774ca049b9a120f9297ba701ab92bc4f2d377695
new file mode 100644
index 00000000..19146737
Binary files /dev/null and b/test/de_fuzz/corpus/774ca049b9a120f9297ba701ab92bc4f2d377695 differ
diff --git a/test/de_fuzz/corpus/7766b1ff3ec698193b01f2b8f4867d0308396a58 b/test/de_fuzz/corpus/7766b1ff3ec698193b01f2b8f4867d0308396a58
new file mode 100644
index 00000000..7949aaf3
Binary files /dev/null and b/test/de_fuzz/corpus/7766b1ff3ec698193b01f2b8f4867d0308396a58 differ
diff --git a/test/de_fuzz/corpus/77a5881e796dee421400416b34418b90740bb1f4 b/test/de_fuzz/corpus/77a5881e796dee421400416b34418b90740bb1f4
new file mode 100644
index 00000000..2a9961ab
Binary files /dev/null and b/test/de_fuzz/corpus/77a5881e796dee421400416b34418b90740bb1f4 differ
diff --git a/test/de_fuzz/corpus/77cdbd9b927bdb6450fd7575f23b874279d2b712 b/test/de_fuzz/corpus/77cdbd9b927bdb6450fd7575f23b874279d2b712
new file mode 100644
index 00000000..6e7ffd5f
Binary files /dev/null and b/test/de_fuzz/corpus/77cdbd9b927bdb6450fd7575f23b874279d2b712 differ
diff --git a/test/de_fuzz/corpus/77e4ccf8e313a565ff7c71c523a8764138605e0f b/test/de_fuzz/corpus/77e4ccf8e313a565ff7c71c523a8764138605e0f
new file mode 100644
index 00000000..bd761b52
Binary files /dev/null and b/test/de_fuzz/corpus/77e4ccf8e313a565ff7c71c523a8764138605e0f differ
diff --git a/test/de_fuzz/corpus/783d8d7df5b7a4f05b29f94d4b85ff3029e507fa b/test/de_fuzz/corpus/783d8d7df5b7a4f05b29f94d4b85ff3029e507fa
new file mode 100644
index 00000000..095efda7
Binary files /dev/null and b/test/de_fuzz/corpus/783d8d7df5b7a4f05b29f94d4b85ff3029e507fa differ
diff --git a/test/de_fuzz/corpus/7854c24f52063529e5df8650109a22714d7a06a1 b/test/de_fuzz/corpus/7854c24f52063529e5df8650109a22714d7a06a1
new file mode 100644
index 00000000..3ebdbc6e
Binary files /dev/null and b/test/de_fuzz/corpus/7854c24f52063529e5df8650109a22714d7a06a1 differ
diff --git a/test/de_fuzz/corpus/78697d6d69a021f4ad0df46a9e005edb8903bdf8 b/test/de_fuzz/corpus/78697d6d69a021f4ad0df46a9e005edb8903bdf8
new file mode 100644
index 00000000..ad3bb72e
Binary files /dev/null and b/test/de_fuzz/corpus/78697d6d69a021f4ad0df46a9e005edb8903bdf8 differ
diff --git a/test/de_fuzz/corpus/78b9c35b44a97fed9820329175e4e2824ee84f5a b/test/de_fuzz/corpus/78b9c35b44a97fed9820329175e4e2824ee84f5a
new file mode 100644
index 00000000..66ffe2c2
Binary files /dev/null and b/test/de_fuzz/corpus/78b9c35b44a97fed9820329175e4e2824ee84f5a differ
diff --git a/test/de_fuzz/corpus/78dbcd3ece14961966505ef2ab87f426eacdf043 b/test/de_fuzz/corpus/78dbcd3ece14961966505ef2ab87f426eacdf043
new file mode 100644
index 00000000..76160316
--- /dev/null
+++ b/test/de_fuzz/corpus/78dbcd3ece14961966505ef2ab87f426eacdf043
@@ -0,0 +1 @@
+8^\l*(?:((.Ô*?)\W*(?1)\§*\2[abc]| |((.)\)W*(?1)\W*\4|\ZZZZZZZZZZZZZZZZZZZZZZÿÿÿÿÿÿÿÿÿÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\pd\)W*(?1)\W*\4|\ZZZZZZZZZZZZZZZZZZZZZZ(?1)\§*\2[abc]| |((.)\)W*(?1)\W*\4|\ZZZZZZZZZZZZZZZZZZZZZZÿÿÿÿÿÿÿÿÿÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\pd\)W*(?1)\W*\4|\ZZZZZZZZZZZZZZZZZZZZZZÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\pdÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\pdquick brown )ox
\ No newline at end of file
diff --git a/test/de_fuzz/corpus/78fcbce0b7e585dc4ff7f94d850e64e37431fa14 b/test/de_fuzz/corpus/78fcbce0b7e585dc4ff7f94d850e64e37431fa14
new file mode 100644
index 00000000..a8a92652
Binary files /dev/null and b/test/de_fuzz/corpus/78fcbce0b7e585dc4ff7f94d850e64e37431fa14 differ
diff --git a/test/de_fuzz/corpus/78fea3cbe1c2a5ab21e6584e911bf9c56039485f b/test/de_fuzz/corpus/78fea3cbe1c2a5ab21e6584e911bf9c56039485f
new file mode 100644
index 00000000..878ebfe4
Binary files /dev/null and b/test/de_fuzz/corpus/78fea3cbe1c2a5ab21e6584e911bf9c56039485f differ
diff --git a/test/de_fuzz/corpus/791064a9992f585cdc59f546c65861e8fdfac83f b/test/de_fuzz/corpus/791064a9992f585cdc59f546c65861e8fdfac83f
new file mode 100644
index 00000000..b114e893
Binary files /dev/null and b/test/de_fuzz/corpus/791064a9992f585cdc59f546c65861e8fdfac83f differ
diff --git a/test/de_fuzz/corpus/79125784de1eac6c53f3c12a133d1d9a111755d7 b/test/de_fuzz/corpus/79125784de1eac6c53f3c12a133d1d9a111755d7
new file mode 100644
index 00000000..9c4e8a29
Binary files /dev/null and b/test/de_fuzz/corpus/79125784de1eac6c53f3c12a133d1d9a111755d7 differ
diff --git a/test/de_fuzz/corpus/79480ae7bf15c679e916854b2f53420a268a7551 b/test/de_fuzz/corpus/79480ae7bf15c679e916854b2f53420a268a7551
new file mode 100644
index 00000000..4edb5674
Binary files /dev/null and b/test/de_fuzz/corpus/79480ae7bf15c679e916854b2f53420a268a7551 differ
diff --git a/test/de_fuzz/corpus/7950a7d1e1be5028ee59819ab3280a956e994fa5 b/test/de_fuzz/corpus/7950a7d1e1be5028ee59819ab3280a956e994fa5
new file mode 100644
index 00000000..c501bbf0
Binary files /dev/null and b/test/de_fuzz/corpus/7950a7d1e1be5028ee59819ab3280a956e994fa5 differ
diff --git a/test/de_fuzz/corpus/79537e14500c97c95ac219d1bfb2e76674960e95 b/test/de_fuzz/corpus/79537e14500c97c95ac219d1bfb2e76674960e95
new file mode 100644
index 00000000..8f742e4a
Binary files /dev/null and b/test/de_fuzz/corpus/79537e14500c97c95ac219d1bfb2e76674960e95 differ
diff --git a/test/de_fuzz/corpus/7956b9df3582f54a9515be62dd5dc0a546766710 b/test/de_fuzz/corpus/7956b9df3582f54a9515be62dd5dc0a546766710
new file mode 100644
index 00000000..d04be5fb
Binary files /dev/null and b/test/de_fuzz/corpus/7956b9df3582f54a9515be62dd5dc0a546766710 differ
diff --git a/test/de_fuzz/corpus/795933f53d9e4bf14c4ba1448803ee8ad34490a5 b/test/de_fuzz/corpus/795933f53d9e4bf14c4ba1448803ee8ad34490a5
new file mode 100644
index 00000000..bbddc950
Binary files /dev/null and b/test/de_fuzz/corpus/795933f53d9e4bf14c4ba1448803ee8ad34490a5 differ
diff --git a/test/de_fuzz/corpus/797711bf799f79d6195b5595cbae54ccad5acba4 b/test/de_fuzz/corpus/797711bf799f79d6195b5595cbae54ccad5acba4
new file mode 100644
index 00000000..d863e21e
Binary files /dev/null and b/test/de_fuzz/corpus/797711bf799f79d6195b5595cbae54ccad5acba4 differ
diff --git a/test/de_fuzz/corpus/7980a7aae8c9a0151026e6f4eb5711646e55e509 b/test/de_fuzz/corpus/7980a7aae8c9a0151026e6f4eb5711646e55e509
new file mode 100644
index 00000000..8644a650
Binary files /dev/null and b/test/de_fuzz/corpus/7980a7aae8c9a0151026e6f4eb5711646e55e509 differ
diff --git a/test/de_fuzz/corpus/79bca49e78077dc90d592f5a903d9b62253bbd7d b/test/de_fuzz/corpus/79bca49e78077dc90d592f5a903d9b62253bbd7d
new file mode 100644
index 00000000..3cf328e3
Binary files /dev/null and b/test/de_fuzz/corpus/79bca49e78077dc90d592f5a903d9b62253bbd7d differ
diff --git a/test/de_fuzz/corpus/79c2467bc77f824f7b48dc7b6dbeb79a7c286f5c b/test/de_fuzz/corpus/79c2467bc77f824f7b48dc7b6dbeb79a7c286f5c
new file mode 100644
index 00000000..f81d4dba
Binary files /dev/null and b/test/de_fuzz/corpus/79c2467bc77f824f7b48dc7b6dbeb79a7c286f5c differ
diff --git a/test/de_fuzz/corpus/79cb2eb5509040f8068f41edff4efa3ec17d5ae6 b/test/de_fuzz/corpus/79cb2eb5509040f8068f41edff4efa3ec17d5ae6
new file mode 100644
index 00000000..4ea573ca
Binary files /dev/null and b/test/de_fuzz/corpus/79cb2eb5509040f8068f41edff4efa3ec17d5ae6 differ
diff --git a/test/de_fuzz/corpus/7a185204c2b529fabb78c068d7c99bf893799689 b/test/de_fuzz/corpus/7a185204c2b529fabb78c068d7c99bf893799689
new file mode 100644
index 00000000..468dc0ac
Binary files /dev/null and b/test/de_fuzz/corpus/7a185204c2b529fabb78c068d7c99bf893799689 differ
diff --git a/test/de_fuzz/corpus/7a20b8b78a2dc9d753c6b7c9569ac65043b10733 b/test/de_fuzz/corpus/7a20b8b78a2dc9d753c6b7c9569ac65043b10733
new file mode 100644
index 00000000..321d2bf0
Binary files /dev/null and b/test/de_fuzz/corpus/7a20b8b78a2dc9d753c6b7c9569ac65043b10733 differ
diff --git a/test/de_fuzz/corpus/7a244a8cb0f5eb24db99af99d3db7840e626df7a b/test/de_fuzz/corpus/7a244a8cb0f5eb24db99af99d3db7840e626df7a
new file mode 100644
index 00000000..b4eb7cce
Binary files /dev/null and b/test/de_fuzz/corpus/7a244a8cb0f5eb24db99af99d3db7840e626df7a differ
diff --git a/test/de_fuzz/corpus/7a2bb64e07cb0aa300db2a5e4b0825239894beb9 b/test/de_fuzz/corpus/7a2bb64e07cb0aa300db2a5e4b0825239894beb9
new file mode 100644
index 00000000..27d1326b
Binary files /dev/null and b/test/de_fuzz/corpus/7a2bb64e07cb0aa300db2a5e4b0825239894beb9 differ
diff --git a/test/de_fuzz/corpus/7a4b10d8cda40a52ad71fd6c2b6e23198e271370 b/test/de_fuzz/corpus/7a4b10d8cda40a52ad71fd6c2b6e23198e271370
new file mode 100644
index 00000000..44929cae
Binary files /dev/null and b/test/de_fuzz/corpus/7a4b10d8cda40a52ad71fd6c2b6e23198e271370 differ
diff --git a/test/de_fuzz/corpus/7a9c5e01da931099a5aef43fe2f7f35ea91db93c b/test/de_fuzz/corpus/7a9c5e01da931099a5aef43fe2f7f35ea91db93c
new file mode 100644
index 00000000..e459fa4a
Binary files /dev/null and b/test/de_fuzz/corpus/7a9c5e01da931099a5aef43fe2f7f35ea91db93c differ
diff --git a/test/de_fuzz/corpus/7aa094f1cda2b23c6ce5cf06b84f259575a091c0 b/test/de_fuzz/corpus/7aa094f1cda2b23c6ce5cf06b84f259575a091c0
new file mode 100644
index 00000000..34b11f05
Binary files /dev/null and b/test/de_fuzz/corpus/7aa094f1cda2b23c6ce5cf06b84f259575a091c0 differ
diff --git a/test/de_fuzz/corpus/7ac3201a8989820087bbe88485e89723d866fbe1 b/test/de_fuzz/corpus/7ac3201a8989820087bbe88485e89723d866fbe1
new file mode 100644
index 00000000..5ca6121d
Binary files /dev/null and b/test/de_fuzz/corpus/7ac3201a8989820087bbe88485e89723d866fbe1 differ
diff --git a/test/de_fuzz/corpus/7ac575245bf11d432507b8b1d1f523aabb9a95b8 b/test/de_fuzz/corpus/7ac575245bf11d432507b8b1d1f523aabb9a95b8
new file mode 100644
index 00000000..418f0a9a
Binary files /dev/null and b/test/de_fuzz/corpus/7ac575245bf11d432507b8b1d1f523aabb9a95b8 differ
diff --git a/test/de_fuzz/corpus/7ae379bb953b3776eae20399b2083b472c6e684f b/test/de_fuzz/corpus/7ae379bb953b3776eae20399b2083b472c6e684f
new file mode 100644
index 00000000..7af6c28a
Binary files /dev/null and b/test/de_fuzz/corpus/7ae379bb953b3776eae20399b2083b472c6e684f differ
diff --git a/test/de_fuzz/corpus/7afb7396644fb188c0dab531b9945fc7a0ea7efe b/test/de_fuzz/corpus/7afb7396644fb188c0dab531b9945fc7a0ea7efe
new file mode 100644
index 00000000..27e30b98
Binary files /dev/null and b/test/de_fuzz/corpus/7afb7396644fb188c0dab531b9945fc7a0ea7efe differ
diff --git a/test/de_fuzz/corpus/7b00ede76226df29baaeb17a945864e772b8c579 b/test/de_fuzz/corpus/7b00ede76226df29baaeb17a945864e772b8c579
new file mode 100644
index 00000000..e35f5399
Binary files /dev/null and b/test/de_fuzz/corpus/7b00ede76226df29baaeb17a945864e772b8c579 differ
diff --git a/test/de_fuzz/corpus/7b939cc44d48db710e0965e3d7c98db449ad6687 b/test/de_fuzz/corpus/7b939cc44d48db710e0965e3d7c98db449ad6687
new file mode 100644
index 00000000..03f9f557
Binary files /dev/null and b/test/de_fuzz/corpus/7b939cc44d48db710e0965e3d7c98db449ad6687 differ
diff --git a/test/de_fuzz/corpus/7b9898bfc1359d2f5064965c0c2aa442ee14ddbb b/test/de_fuzz/corpus/7b9898bfc1359d2f5064965c0c2aa442ee14ddbb
new file mode 100644
index 00000000..886dca45
Binary files /dev/null and b/test/de_fuzz/corpus/7b9898bfc1359d2f5064965c0c2aa442ee14ddbb differ
diff --git a/test/de_fuzz/corpus/7ba212bdf2e33a70b9200d8539bf74795470afe8 b/test/de_fuzz/corpus/7ba212bdf2e33a70b9200d8539bf74795470afe8
new file mode 100644
index 00000000..36777b54
--- /dev/null
+++ b/test/de_fuzz/corpus/7ba212bdf2e33a70b9200d8539bf74795470afe8
@@ -0,0 +1,10 @@
+'è (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* # optional leading comment
+(?: (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+"^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* # optional leading comment # o r
+\\ [^\x80-\xff]
\ No newline at end of file
diff --git a/test/de_fuzz/corpus/7bcf3e44a32ed141ed9903b18bef20f7bf7d3d5a b/test/de_fuzz/corpus/7bcf3e44a32ed141ed9903b18bef20f7bf7d3d5a
new file mode 100644
index 00000000..458a9d0c
Binary files /dev/null and b/test/de_fuzz/corpus/7bcf3e44a32ed141ed9903b18bef20f7bf7d3d5a differ
diff --git a/test/de_fuzz/corpus/7be06e465dee08978997e94de5ccc7d2c9d56c82 b/test/de_fuzz/corpus/7be06e465dee08978997e94de5ccc7d2c9d56c82
new file mode 100644
index 00000000..71b12ec8
Binary files /dev/null and b/test/de_fuzz/corpus/7be06e465dee08978997e94de5ccc7d2c9d56c82 differ
diff --git a/test/de_fuzz/corpus/7be07845c2e8df479b876f2a37720d673fc853c3 b/test/de_fuzz/corpus/7be07845c2e8df479b876f2a37720d673fc853c3
new file mode 100644
index 00000000..552b47b6
Binary files /dev/null and b/test/de_fuzz/corpus/7be07845c2e8df479b876f2a37720d673fc853c3 differ
diff --git a/test/de_fuzz/corpus/7be78b66112bffb1a76b3a6e1ec1258937d880e6 b/test/de_fuzz/corpus/7be78b66112bffb1a76b3a6e1ec1258937d880e6
new file mode 100644
index 00000000..826a3555
Binary files /dev/null and b/test/de_fuzz/corpus/7be78b66112bffb1a76b3a6e1ec1258937d880e6 differ
diff --git a/test/de_fuzz/corpus/7c1c8f042e3a6db1c203ae8dfa7e4b95069524c3 b/test/de_fuzz/corpus/7c1c8f042e3a6db1c203ae8dfa7e4b95069524c3
new file mode 100644
index 00000000..9f6402e1
Binary files /dev/null and b/test/de_fuzz/corpus/7c1c8f042e3a6db1c203ae8dfa7e4b95069524c3 differ
diff --git a/test/de_fuzz/corpus/7c26aabb027dbc4149cd81bb0763f2b39eeb9e4c b/test/de_fuzz/corpus/7c26aabb027dbc4149cd81bb0763f2b39eeb9e4c
new file mode 100644
index 00000000..f08c4f9f
Binary files /dev/null and b/test/de_fuzz/corpus/7c26aabb027dbc4149cd81bb0763f2b39eeb9e4c differ
diff --git a/test/de_fuzz/corpus/7c557997d51cbd3a0764be0f4cbff4e9f69271ff b/test/de_fuzz/corpus/7c557997d51cbd3a0764be0f4cbff4e9f69271ff
new file mode 100644
index 00000000..5ac3de19
Binary files /dev/null and b/test/de_fuzz/corpus/7c557997d51cbd3a0764be0f4cbff4e9f69271ff differ
diff --git a/test/de_fuzz/corpus/7c7b596711cec65ec039f3d291757e0655ced9b9 b/test/de_fuzz/corpus/7c7b596711cec65ec039f3d291757e0655ced9b9
new file mode 100644
index 00000000..26e577a3
Binary files /dev/null and b/test/de_fuzz/corpus/7c7b596711cec65ec039f3d291757e0655ced9b9 differ
diff --git a/test/de_fuzz/corpus/7c9ed41096120561644949ed46b91a93ac60ca4e b/test/de_fuzz/corpus/7c9ed41096120561644949ed46b91a93ac60ca4e
new file mode 100644
index 00000000..35ab4212
Binary files /dev/null and b/test/de_fuzz/corpus/7c9ed41096120561644949ed46b91a93ac60ca4e differ
diff --git a/test/de_fuzz/corpus/7ce5a83848b2cdd4a3c6ddeb716aa3130f8dbc67 b/test/de_fuzz/corpus/7ce5a83848b2cdd4a3c6ddeb716aa3130f8dbc67
new file mode 100644
index 00000000..52bd8286
Binary files /dev/null and b/test/de_fuzz/corpus/7ce5a83848b2cdd4a3c6ddeb716aa3130f8dbc67 differ
diff --git a/test/de_fuzz/corpus/7dc822d01e3390d63cd04da872adf89f579b05df b/test/de_fuzz/corpus/7dc822d01e3390d63cd04da872adf89f579b05df
new file mode 100644
index 00000000..d3cc83ad
Binary files /dev/null and b/test/de_fuzz/corpus/7dc822d01e3390d63cd04da872adf89f579b05df differ
diff --git a/test/de_fuzz/corpus/7e00ca3e940db1832b413c41cd63a8f6b7683999 b/test/de_fuzz/corpus/7e00ca3e940db1832b413c41cd63a8f6b7683999
new file mode 100644
index 00000000..34f1fae0
Binary files /dev/null and b/test/de_fuzz/corpus/7e00ca3e940db1832b413c41cd63a8f6b7683999 differ
diff --git a/test/de_fuzz/corpus/7e56302e8d4a700ae725815e29b0f33a39e945c0 b/test/de_fuzz/corpus/7e56302e8d4a700ae725815e29b0f33a39e945c0
new file mode 100644
index 00000000..75851842
Binary files /dev/null and b/test/de_fuzz/corpus/7e56302e8d4a700ae725815e29b0f33a39e945c0 differ
diff --git a/test/de_fuzz/corpus/7e7543db86047442a9d12309b17df01a7ff81f77 b/test/de_fuzz/corpus/7e7543db86047442a9d12309b17df01a7ff81f77
new file mode 100644
index 00000000..86fd006d
Binary files /dev/null and b/test/de_fuzz/corpus/7e7543db86047442a9d12309b17df01a7ff81f77 differ
diff --git a/test/de_fuzz/corpus/7ede03cafd121bdb335c00365289b32282d22f59 b/test/de_fuzz/corpus/7ede03cafd121bdb335c00365289b32282d22f59
new file mode 100644
index 00000000..3536f492
Binary files /dev/null and b/test/de_fuzz/corpus/7ede03cafd121bdb335c00365289b32282d22f59 differ
diff --git a/test/de_fuzz/corpus/7ee59b995167e39ec5331b5b196cd110ca25e1c7 b/test/de_fuzz/corpus/7ee59b995167e39ec5331b5b196cd110ca25e1c7
new file mode 100644
index 00000000..425d194f
Binary files /dev/null and b/test/de_fuzz/corpus/7ee59b995167e39ec5331b5b196cd110ca25e1c7 differ
diff --git a/test/de_fuzz/corpus/7f4b465212602d1a46a48fb345c830d1ac447e46 b/test/de_fuzz/corpus/7f4b465212602d1a46a48fb345c830d1ac447e46
new file mode 100644
index 00000000..8b24e7e6
Binary files /dev/null and b/test/de_fuzz/corpus/7f4b465212602d1a46a48fb345c830d1ac447e46 differ
diff --git a/test/de_fuzz/corpus/7f5eb3a5db0704834f7db238fc08bb36a52e1f4d b/test/de_fuzz/corpus/7f5eb3a5db0704834f7db238fc08bb36a52e1f4d
new file mode 100644
index 00000000..38702ce2
Binary files /dev/null and b/test/de_fuzz/corpus/7f5eb3a5db0704834f7db238fc08bb36a52e1f4d differ
diff --git a/test/de_fuzz/corpus/7fb85319db00559c188424f465ab80a0fa04e09c b/test/de_fuzz/corpus/7fb85319db00559c188424f465ab80a0fa04e09c
new file mode 100644
index 00000000..32a61e7e
Binary files /dev/null and b/test/de_fuzz/corpus/7fb85319db00559c188424f465ab80a0fa04e09c differ
diff --git a/test/de_fuzz/corpus/7fd046d94b5a7ed1bc4559ddf8573d20054f1933 b/test/de_fuzz/corpus/7fd046d94b5a7ed1bc4559ddf8573d20054f1933
new file mode 100644
index 00000000..132c031d
Binary files /dev/null and b/test/de_fuzz/corpus/7fd046d94b5a7ed1bc4559ddf8573d20054f1933 differ
diff --git a/test/de_fuzz/corpus/7fe82f2f3f9365891f76b28899836dcbc2da4b3c b/test/de_fuzz/corpus/7fe82f2f3f9365891f76b28899836dcbc2da4b3c
new file mode 100644
index 00000000..15a0a490
Binary files /dev/null and b/test/de_fuzz/corpus/7fe82f2f3f9365891f76b28899836dcbc2da4b3c differ
diff --git a/test/de_fuzz/corpus/802eb5be501bd78e38b95292e214fe9b2240b53b b/test/de_fuzz/corpus/802eb5be501bd78e38b95292e214fe9b2240b53b
new file mode 100644
index 00000000..e31cc6b5
Binary files /dev/null and b/test/de_fuzz/corpus/802eb5be501bd78e38b95292e214fe9b2240b53b differ
diff --git a/test/de_fuzz/corpus/8049db9865975266b6fec85ff8813c71ac8dcfd8 b/test/de_fuzz/corpus/8049db9865975266b6fec85ff8813c71ac8dcfd8
new file mode 100644
index 00000000..e9c6e262
Binary files /dev/null and b/test/de_fuzz/corpus/8049db9865975266b6fec85ff8813c71ac8dcfd8 differ
diff --git a/test/de_fuzz/corpus/80658a2bd5f83841ddf9a0c2358f6abdcea4e100 b/test/de_fuzz/corpus/80658a2bd5f83841ddf9a0c2358f6abdcea4e100
new file mode 100644
index 00000000..804acf07
Binary files /dev/null and b/test/de_fuzz/corpus/80658a2bd5f83841ddf9a0c2358f6abdcea4e100 differ
diff --git a/test/de_fuzz/corpus/8085ce0a804210af6807654ac84b31e193af0874 b/test/de_fuzz/corpus/8085ce0a804210af6807654ac84b31e193af0874
new file mode 100644
index 00000000..47fb603a
Binary files /dev/null and b/test/de_fuzz/corpus/8085ce0a804210af6807654ac84b31e193af0874 differ
diff --git a/test/de_fuzz/corpus/80edf11cf7378ca21d33e9dde68bfda0771962c7 b/test/de_fuzz/corpus/80edf11cf7378ca21d33e9dde68bfda0771962c7
new file mode 100644
index 00000000..ba6cca83
Binary files /dev/null and b/test/de_fuzz/corpus/80edf11cf7378ca21d33e9dde68bfda0771962c7 differ
diff --git a/test/de_fuzz/corpus/811c4cb2c21cf1cf8f8dad849cacd5edf5507ec4 b/test/de_fuzz/corpus/811c4cb2c21cf1cf8f8dad849cacd5edf5507ec4
new file mode 100644
index 00000000..595d7646
Binary files /dev/null and b/test/de_fuzz/corpus/811c4cb2c21cf1cf8f8dad849cacd5edf5507ec4 differ
diff --git a/test/de_fuzz/corpus/8121616fec40cb37fae26d13a1df2475e496babf b/test/de_fuzz/corpus/8121616fec40cb37fae26d13a1df2475e496babf
new file mode 100644
index 00000000..ab3d7fba
Binary files /dev/null and b/test/de_fuzz/corpus/8121616fec40cb37fae26d13a1df2475e496babf differ
diff --git a/test/de_fuzz/corpus/817293e7e8d8c54acdc7fdba5f1e6a9ca64fab0c b/test/de_fuzz/corpus/817293e7e8d8c54acdc7fdba5f1e6a9ca64fab0c
new file mode 100644
index 00000000..f6f6aeac
Binary files /dev/null and b/test/de_fuzz/corpus/817293e7e8d8c54acdc7fdba5f1e6a9ca64fab0c differ
diff --git a/test/de_fuzz/corpus/817c7335ab5268c9862545fe3e9dd75534d833a3 b/test/de_fuzz/corpus/817c7335ab5268c9862545fe3e9dd75534d833a3
new file mode 100644
index 00000000..e08a37d2
Binary files /dev/null and b/test/de_fuzz/corpus/817c7335ab5268c9862545fe3e9dd75534d833a3 differ
diff --git a/test/de_fuzz/corpus/81c05356045415548eb9ea10d3b9ad3deec23233 b/test/de_fuzz/corpus/81c05356045415548eb9ea10d3b9ad3deec23233
new file mode 100644
index 00000000..87f7fa33
Binary files /dev/null and b/test/de_fuzz/corpus/81c05356045415548eb9ea10d3b9ad3deec23233 differ
diff --git a/test/de_fuzz/corpus/81d7595a2b823ca5a1fd62ce7be750aff8440dce b/test/de_fuzz/corpus/81d7595a2b823ca5a1fd62ce7be750aff8440dce
new file mode 100644
index 00000000..3d2d7ade
Binary files /dev/null and b/test/de_fuzz/corpus/81d7595a2b823ca5a1fd62ce7be750aff8440dce differ
diff --git a/test/de_fuzz/corpus/8214280bbc595afc6edbd01994182098fa954670 b/test/de_fuzz/corpus/8214280bbc595afc6edbd01994182098fa954670
new file mode 100644
index 00000000..fde09494
Binary files /dev/null and b/test/de_fuzz/corpus/8214280bbc595afc6edbd01994182098fa954670 differ
diff --git a/test/de_fuzz/corpus/821d3a724be2e62f5f557da0c0ee37a76a4d1c1e b/test/de_fuzz/corpus/821d3a724be2e62f5f557da0c0ee37a76a4d1c1e
new file mode 100644
index 00000000..7f4f4b55
Binary files /dev/null and b/test/de_fuzz/corpus/821d3a724be2e62f5f557da0c0ee37a76a4d1c1e differ
diff --git a/test/de_fuzz/corpus/822d91c53136e4ee3f8e3925262d20ddd3f53a9c b/test/de_fuzz/corpus/822d91c53136e4ee3f8e3925262d20ddd3f53a9c
new file mode 100644
index 00000000..a3ea5b9d
Binary files /dev/null and b/test/de_fuzz/corpus/822d91c53136e4ee3f8e3925262d20ddd3f53a9c differ
diff --git a/test/de_fuzz/corpus/82315867aa0a028647cbaba15f351a8d34ff31d8 b/test/de_fuzz/corpus/82315867aa0a028647cbaba15f351a8d34ff31d8
new file mode 100644
index 00000000..749cb3d1
Binary files /dev/null and b/test/de_fuzz/corpus/82315867aa0a028647cbaba15f351a8d34ff31d8 differ
diff --git a/test/de_fuzz/corpus/824a79a9ce3f8ce435d12d15c47e88318368d60d b/test/de_fuzz/corpus/824a79a9ce3f8ce435d12d15c47e88318368d60d
new file mode 100644
index 00000000..46e7588f
Binary files /dev/null and b/test/de_fuzz/corpus/824a79a9ce3f8ce435d12d15c47e88318368d60d differ
diff --git a/test/de_fuzz/corpus/828f182abe7a4a86583660b0c8a7e6370c36a075 b/test/de_fuzz/corpus/828f182abe7a4a86583660b0c8a7e6370c36a075
new file mode 100644
index 00000000..f53ea1cd
Binary files /dev/null and b/test/de_fuzz/corpus/828f182abe7a4a86583660b0c8a7e6370c36a075 differ
diff --git a/test/de_fuzz/corpus/82995f99462d361d5f92afdfd25a5f956df179e3 b/test/de_fuzz/corpus/82995f99462d361d5f92afdfd25a5f956df179e3
new file mode 100644
index 00000000..ce83f57c
Binary files /dev/null and b/test/de_fuzz/corpus/82995f99462d361d5f92afdfd25a5f956df179e3 differ
diff --git a/test/de_fuzz/corpus/829cbc3b0f220f26f863d99fefe60e210bc340f9 b/test/de_fuzz/corpus/829cbc3b0f220f26f863d99fefe60e210bc340f9
new file mode 100644
index 00000000..376357df
Binary files /dev/null and b/test/de_fuzz/corpus/829cbc3b0f220f26f863d99fefe60e210bc340f9 differ
diff --git a/test/de_fuzz/corpus/82b06c8780b1e7359cd9f2beb17c4ebd89acb72c b/test/de_fuzz/corpus/82b06c8780b1e7359cd9f2beb17c4ebd89acb72c
new file mode 100644
index 00000000..f2cd3987
Binary files /dev/null and b/test/de_fuzz/corpus/82b06c8780b1e7359cd9f2beb17c4ebd89acb72c differ
diff --git a/test/de_fuzz/corpus/836ef59d31a1b7c95c5ea9b43bf7c052ad78e370 b/test/de_fuzz/corpus/836ef59d31a1b7c95c5ea9b43bf7c052ad78e370
new file mode 100644
index 00000000..871f9a23
Binary files /dev/null and b/test/de_fuzz/corpus/836ef59d31a1b7c95c5ea9b43bf7c052ad78e370 differ
diff --git a/test/de_fuzz/corpus/8385a343ff34aebdb3ccda18cc064cf895d07703 b/test/de_fuzz/corpus/8385a343ff34aebdb3ccda18cc064cf895d07703
new file mode 100644
index 00000000..a50b7c40
Binary files /dev/null and b/test/de_fuzz/corpus/8385a343ff34aebdb3ccda18cc064cf895d07703 differ
diff --git a/test/de_fuzz/corpus/83b348f53c7cd331c2ab53c9a978a5d27ac98a8c b/test/de_fuzz/corpus/83b348f53c7cd331c2ab53c9a978a5d27ac98a8c
new file mode 100644
index 00000000..75b2fee6
Binary files /dev/null and b/test/de_fuzz/corpus/83b348f53c7cd331c2ab53c9a978a5d27ac98a8c differ
diff --git a/test/de_fuzz/corpus/83d3c103c7e3e336db49337f2680b9683c34ee62 b/test/de_fuzz/corpus/83d3c103c7e3e336db49337f2680b9683c34ee62
new file mode 100644
index 00000000..3c4150db
Binary files /dev/null and b/test/de_fuzz/corpus/83d3c103c7e3e336db49337f2680b9683c34ee62 differ
diff --git a/test/de_fuzz/corpus/840742f76a654c6df800c90791a800801b1cca9d b/test/de_fuzz/corpus/840742f76a654c6df800c90791a800801b1cca9d
new file mode 100644
index 00000000..eedd533b
Binary files /dev/null and b/test/de_fuzz/corpus/840742f76a654c6df800c90791a800801b1cca9d differ
diff --git a/test/de_fuzz/corpus/84244348fe5fbafd05b6fa4284fab97039101c38 b/test/de_fuzz/corpus/84244348fe5fbafd05b6fa4284fab97039101c38
new file mode 100644
index 00000000..18c6093f
Binary files /dev/null and b/test/de_fuzz/corpus/84244348fe5fbafd05b6fa4284fab97039101c38 differ
diff --git a/test/de_fuzz/corpus/842de4320ff38bf213141f81666dddfa51368e33 b/test/de_fuzz/corpus/842de4320ff38bf213141f81666dddfa51368e33
new file mode 100644
index 00000000..c564613c
Binary files /dev/null and b/test/de_fuzz/corpus/842de4320ff38bf213141f81666dddfa51368e33 differ
diff --git a/test/de_fuzz/corpus/8430a5ba96a62db57515b58ab004e1682c010160 b/test/de_fuzz/corpus/8430a5ba96a62db57515b58ab004e1682c010160
new file mode 100644
index 00000000..eb5dbf60
Binary files /dev/null and b/test/de_fuzz/corpus/8430a5ba96a62db57515b58ab004e1682c010160 differ
diff --git a/test/de_fuzz/corpus/84432e2b9396565e98762c6310b2ec560d39a9d9 b/test/de_fuzz/corpus/84432e2b9396565e98762c6310b2ec560d39a9d9
new file mode 100644
index 00000000..a9216121
Binary files /dev/null and b/test/de_fuzz/corpus/84432e2b9396565e98762c6310b2ec560d39a9d9 differ
diff --git a/test/de_fuzz/corpus/8458f96e3af2081172acfe77a4af3d2545a5f431 b/test/de_fuzz/corpus/8458f96e3af2081172acfe77a4af3d2545a5f431
new file mode 100644
index 00000000..30e79546
Binary files /dev/null and b/test/de_fuzz/corpus/8458f96e3af2081172acfe77a4af3d2545a5f431 differ
diff --git a/test/de_fuzz/corpus/846cf52bc02a270128c349a4cdc9841e711c16e9 b/test/de_fuzz/corpus/846cf52bc02a270128c349a4cdc9841e711c16e9
new file mode 100644
index 00000000..410e2a89
Binary files /dev/null and b/test/de_fuzz/corpus/846cf52bc02a270128c349a4cdc9841e711c16e9 differ
diff --git a/test/de_fuzz/corpus/848ebd18c80e6de0854deca24b569cfb470b6bab b/test/de_fuzz/corpus/848ebd18c80e6de0854deca24b569cfb470b6bab
new file mode 100644
index 00000000..8b3a9786
Binary files /dev/null and b/test/de_fuzz/corpus/848ebd18c80e6de0854deca24b569cfb470b6bab differ
diff --git a/test/de_fuzz/corpus/84b7905c6cb3acb655bec7f799f3ad7a825ebbf7 b/test/de_fuzz/corpus/84b7905c6cb3acb655bec7f799f3ad7a825ebbf7
new file mode 100644
index 00000000..2b712e73
Binary files /dev/null and b/test/de_fuzz/corpus/84b7905c6cb3acb655bec7f799f3ad7a825ebbf7 differ
diff --git a/test/de_fuzz/corpus/84cefd399f40a0815f1d8b1025ba7331a8153b36 b/test/de_fuzz/corpus/84cefd399f40a0815f1d8b1025ba7331a8153b36
new file mode 100644
index 00000000..a897cabf
Binary files /dev/null and b/test/de_fuzz/corpus/84cefd399f40a0815f1d8b1025ba7331a8153b36 differ
diff --git a/test/de_fuzz/corpus/84fe19f4c978a3df840facf201ca0cf0ae22756c b/test/de_fuzz/corpus/84fe19f4c978a3df840facf201ca0cf0ae22756c
new file mode 100644
index 00000000..9e1fee7c
Binary files /dev/null and b/test/de_fuzz/corpus/84fe19f4c978a3df840facf201ca0cf0ae22756c differ
diff --git a/test/de_fuzz/corpus/85080cd5f5454cba6be8e2384b079d380a821884 b/test/de_fuzz/corpus/85080cd5f5454cba6be8e2384b079d380a821884
new file mode 100644
index 00000000..66368ff1
Binary files /dev/null and b/test/de_fuzz/corpus/85080cd5f5454cba6be8e2384b079d380a821884 differ
diff --git a/test/de_fuzz/corpus/854686249f2a8c5416c12463ec5fe837b04b55fd b/test/de_fuzz/corpus/854686249f2a8c5416c12463ec5fe837b04b55fd
new file mode 100644
index 00000000..9cd91cf7
Binary files /dev/null and b/test/de_fuzz/corpus/854686249f2a8c5416c12463ec5fe837b04b55fd differ
diff --git a/test/de_fuzz/corpus/854e3abfe22ac96b5f5753c6f2effefd4985b999 b/test/de_fuzz/corpus/854e3abfe22ac96b5f5753c6f2effefd4985b999
new file mode 100644
index 00000000..1a1830dd
Binary files /dev/null and b/test/de_fuzz/corpus/854e3abfe22ac96b5f5753c6f2effefd4985b999 differ
diff --git a/test/de_fuzz/corpus/85577a210799b833b732c5225094f78cc53746f1 b/test/de_fuzz/corpus/85577a210799b833b732c5225094f78cc53746f1
new file mode 100644
index 00000000..f26b560f
Binary files /dev/null and b/test/de_fuzz/corpus/85577a210799b833b732c5225094f78cc53746f1 differ
diff --git a/test/de_fuzz/corpus/85612e043f024fe8bf9b8fa2772056a8d6686f53 b/test/de_fuzz/corpus/85612e043f024fe8bf9b8fa2772056a8d6686f53
new file mode 100644
index 00000000..1b1a56c0
Binary files /dev/null and b/test/de_fuzz/corpus/85612e043f024fe8bf9b8fa2772056a8d6686f53 differ
diff --git a/test/de_fuzz/corpus/856cd0a5371d334ca8efc3a31ebe4f7f70a8ea70 b/test/de_fuzz/corpus/856cd0a5371d334ca8efc3a31ebe4f7f70a8ea70
new file mode 100644
index 00000000..58ed84aa
Binary files /dev/null and b/test/de_fuzz/corpus/856cd0a5371d334ca8efc3a31ebe4f7f70a8ea70 differ
diff --git a/test/de_fuzz/corpus/85de80fd9a18aa007ac98734806025d50e3f5727 b/test/de_fuzz/corpus/85de80fd9a18aa007ac98734806025d50e3f5727
new file mode 100644
index 00000000..f9c5a3b9
Binary files /dev/null and b/test/de_fuzz/corpus/85de80fd9a18aa007ac98734806025d50e3f5727 differ
diff --git a/test/de_fuzz/corpus/8614940c5f85b18a079695bacd272e6c90b06fe5 b/test/de_fuzz/corpus/8614940c5f85b18a079695bacd272e6c90b06fe5
new file mode 100644
index 00000000..c7b3877e
Binary files /dev/null and b/test/de_fuzz/corpus/8614940c5f85b18a079695bacd272e6c90b06fe5 differ
diff --git a/test/de_fuzz/corpus/861931c3f41477369ee6dd21fd9e57a9da978487 b/test/de_fuzz/corpus/861931c3f41477369ee6dd21fd9e57a9da978487
new file mode 100644
index 00000000..e0e9a7a1
Binary files /dev/null and b/test/de_fuzz/corpus/861931c3f41477369ee6dd21fd9e57a9da978487 differ
diff --git a/test/de_fuzz/corpus/861e0a72fc2e0db8d4b89ad1c0798a5f485ad857 b/test/de_fuzz/corpus/861e0a72fc2e0db8d4b89ad1c0798a5f485ad857
new file mode 100644
index 00000000..d3e22964
Binary files /dev/null and b/test/de_fuzz/corpus/861e0a72fc2e0db8d4b89ad1c0798a5f485ad857 differ
diff --git a/test/de_fuzz/corpus/8624209825954a5f48efeae531645c49b3817ff7 b/test/de_fuzz/corpus/8624209825954a5f48efeae531645c49b3817ff7
new file mode 100644
index 00000000..853d0d4b
Binary files /dev/null and b/test/de_fuzz/corpus/8624209825954a5f48efeae531645c49b3817ff7 differ
diff --git a/test/de_fuzz/corpus/86c7332b3db7f2c1ebfa13e4d4ac301d65b65294 b/test/de_fuzz/corpus/86c7332b3db7f2c1ebfa13e4d4ac301d65b65294
new file mode 100644
index 00000000..7c005331
Binary files /dev/null and b/test/de_fuzz/corpus/86c7332b3db7f2c1ebfa13e4d4ac301d65b65294 differ
diff --git a/test/de_fuzz/corpus/86db14acaafd9bad2a5b131938a3efd1cad21e40 b/test/de_fuzz/corpus/86db14acaafd9bad2a5b131938a3efd1cad21e40
new file mode 100644
index 00000000..ae739317
Binary files /dev/null and b/test/de_fuzz/corpus/86db14acaafd9bad2a5b131938a3efd1cad21e40 differ
diff --git a/test/de_fuzz/corpus/86e62f87e369d95ac78f90d7d08dbe133b87a817 b/test/de_fuzz/corpus/86e62f87e369d95ac78f90d7d08dbe133b87a817
new file mode 100644
index 00000000..be007b3e
Binary files /dev/null and b/test/de_fuzz/corpus/86e62f87e369d95ac78f90d7d08dbe133b87a817 differ
diff --git a/test/de_fuzz/corpus/870ea6de6c0379da1f044390fe73cfadc49ee809 b/test/de_fuzz/corpus/870ea6de6c0379da1f044390fe73cfadc49ee809
new file mode 100644
index 00000000..b8946f5f
Binary files /dev/null and b/test/de_fuzz/corpus/870ea6de6c0379da1f044390fe73cfadc49ee809 differ
diff --git a/test/de_fuzz/corpus/8714a322b986612a4ec49e61b747be1f3569eb13 b/test/de_fuzz/corpus/8714a322b986612a4ec49e61b747be1f3569eb13
new file mode 100644
index 00000000..8a17423e
Binary files /dev/null and b/test/de_fuzz/corpus/8714a322b986612a4ec49e61b747be1f3569eb13 differ
diff --git a/test/de_fuzz/corpus/8719bafa37fdffc311365c598f9ca686e2f65df0 b/test/de_fuzz/corpus/8719bafa37fdffc311365c598f9ca686e2f65df0
new file mode 100644
index 00000000..f06a15e2
Binary files /dev/null and b/test/de_fuzz/corpus/8719bafa37fdffc311365c598f9ca686e2f65df0 differ
diff --git a/test/de_fuzz/corpus/871aefda3653648e0dbcf5cd6387b8dff53692df b/test/de_fuzz/corpus/871aefda3653648e0dbcf5cd6387b8dff53692df
new file mode 100644
index 00000000..8846e1d0
Binary files /dev/null and b/test/de_fuzz/corpus/871aefda3653648e0dbcf5cd6387b8dff53692df differ
diff --git a/test/de_fuzz/corpus/87260b4ae490030ed75e0cf3df52cfb160ac559b b/test/de_fuzz/corpus/87260b4ae490030ed75e0cf3df52cfb160ac559b
new file mode 100644
index 00000000..3aeed071
Binary files /dev/null and b/test/de_fuzz/corpus/87260b4ae490030ed75e0cf3df52cfb160ac559b differ
diff --git a/test/de_fuzz/corpus/8781d7336a1edcae33094fb5165bbf73b4374677 b/test/de_fuzz/corpus/8781d7336a1edcae33094fb5165bbf73b4374677
new file mode 100644
index 00000000..c037c188
Binary files /dev/null and b/test/de_fuzz/corpus/8781d7336a1edcae33094fb5165bbf73b4374677 differ
diff --git a/test/de_fuzz/corpus/87c3295ca339e378f427e56e6c87ad5e26ae020d b/test/de_fuzz/corpus/87c3295ca339e378f427e56e6c87ad5e26ae020d
new file mode 100644
index 00000000..0d17d2b9
Binary files /dev/null and b/test/de_fuzz/corpus/87c3295ca339e378f427e56e6c87ad5e26ae020d differ
diff --git a/test/de_fuzz/corpus/87f062f6a2b909525c9a904f779add2751899fd5 b/test/de_fuzz/corpus/87f062f6a2b909525c9a904f779add2751899fd5
new file mode 100644
index 00000000..6422d2ba
Binary files /dev/null and b/test/de_fuzz/corpus/87f062f6a2b909525c9a904f779add2751899fd5 differ
diff --git a/test/de_fuzz/corpus/87f827d558912b785059c17edae75eabc6a1305b b/test/de_fuzz/corpus/87f827d558912b785059c17edae75eabc6a1305b
new file mode 100644
index 00000000..7293d470
Binary files /dev/null and b/test/de_fuzz/corpus/87f827d558912b785059c17edae75eabc6a1305b differ
diff --git a/test/de_fuzz/corpus/880b838fdd9293f807295b83c3ae2af0660e714f b/test/de_fuzz/corpus/880b838fdd9293f807295b83c3ae2af0660e714f
new file mode 100644
index 00000000..7ba9bc2a
Binary files /dev/null and b/test/de_fuzz/corpus/880b838fdd9293f807295b83c3ae2af0660e714f differ
diff --git a/test/de_fuzz/corpus/881ae8551929b0833672856d2932c3918c6f3a36 b/test/de_fuzz/corpus/881ae8551929b0833672856d2932c3918c6f3a36
new file mode 100644
index 00000000..2ecd9d1e
--- /dev/null
+++ b/test/de_fuzz/corpus/881ae8551929b0833672856d2932c3918c6f3a36
@@ -0,0 +1 @@
+(((((Z((a+)+)+)+)+)+)+)+|Y(((((((a+)+)+)+)+)+)+)+|X(((((((a+)+)+)+)+)+)+)+|W(((((((a+)+)+)+)+)+)+)+|V(((((((a+)+)+)+)+)+)+)+|CZ(((((((a+)+)+)Ï)+)+)+)+|CY(((((((a+)+)+)+)+)+)+)+|CX(((((((a+)+)+)+)+)+)+)+|CW(((((((a+)+)+)+)+)+)+)+|CV(((((((a+)+)+)+)+)+)+)+|(a+)+bc
\ No newline at end of file
diff --git a/test/de_fuzz/corpus/881b6586f5f95a2ca5e7a8859225a6c85057d16b b/test/de_fuzz/corpus/881b6586f5f95a2ca5e7a8859225a6c85057d16b
new file mode 100644
index 00000000..547da272
Binary files /dev/null and b/test/de_fuzz/corpus/881b6586f5f95a2ca5e7a8859225a6c85057d16b differ
diff --git a/test/de_fuzz/corpus/881e728b265c0bae65a09e56765fe81a563e8a73 b/test/de_fuzz/corpus/881e728b265c0bae65a09e56765fe81a563e8a73
new file mode 100644
index 00000000..b1a10fd2
Binary files /dev/null and b/test/de_fuzz/corpus/881e728b265c0bae65a09e56765fe81a563e8a73 differ
diff --git a/test/de_fuzz/corpus/884c34ec46ab1df7fb67be41cd3eac95e2a80c02 b/test/de_fuzz/corpus/884c34ec46ab1df7fb67be41cd3eac95e2a80c02
new file mode 100644
index 00000000..5b1d00cd
Binary files /dev/null and b/test/de_fuzz/corpus/884c34ec46ab1df7fb67be41cd3eac95e2a80c02 differ
diff --git a/test/de_fuzz/corpus/884ce3d07b601d002ea5841b169e549cb627be0a b/test/de_fuzz/corpus/884ce3d07b601d002ea5841b169e549cb627be0a
new file mode 100644
index 00000000..2e494c25
Binary files /dev/null and b/test/de_fuzz/corpus/884ce3d07b601d002ea5841b169e549cb627be0a differ
diff --git a/test/de_fuzz/corpus/88671763764682e46956f9f6d6b5be41b85e0c44 b/test/de_fuzz/corpus/88671763764682e46956f9f6d6b5be41b85e0c44
new file mode 100644
index 00000000..85199640
Binary files /dev/null and b/test/de_fuzz/corpus/88671763764682e46956f9f6d6b5be41b85e0c44 differ
diff --git a/test/de_fuzz/corpus/88a28b5fbce34f1a37b99e5da12c16c13b8b6a6f b/test/de_fuzz/corpus/88a28b5fbce34f1a37b99e5da12c16c13b8b6a6f
new file mode 100644
index 00000000..a6b72450
Binary files /dev/null and b/test/de_fuzz/corpus/88a28b5fbce34f1a37b99e5da12c16c13b8b6a6f differ
diff --git a/test/de_fuzz/corpus/88b18d8fd36e47318848897ac09eeb5ab50585ea b/test/de_fuzz/corpus/88b18d8fd36e47318848897ac09eeb5ab50585ea
new file mode 100644
index 00000000..91fe1a9e
Binary files /dev/null and b/test/de_fuzz/corpus/88b18d8fd36e47318848897ac09eeb5ab50585ea differ
diff --git a/test/de_fuzz/corpus/88ecbd75d380e95bd9e0ffc71a5853f374f12926 b/test/de_fuzz/corpus/88ecbd75d380e95bd9e0ffc71a5853f374f12926
new file mode 100644
index 00000000..2ed46a5e
Binary files /dev/null and b/test/de_fuzz/corpus/88ecbd75d380e95bd9e0ffc71a5853f374f12926 differ
diff --git a/test/de_fuzz/corpus/88f046e32fd4ad39d903e0fae3b4a7cf1082b251 b/test/de_fuzz/corpus/88f046e32fd4ad39d903e0fae3b4a7cf1082b251
new file mode 100644
index 00000000..5ed7b1a0
Binary files /dev/null and b/test/de_fuzz/corpus/88f046e32fd4ad39d903e0fae3b4a7cf1082b251 differ
diff --git a/test/de_fuzz/corpus/8914a489cdbaa77c7c20bcfabba9f613ad57c6d2 b/test/de_fuzz/corpus/8914a489cdbaa77c7c20bcfabba9f613ad57c6d2
new file mode 100644
index 00000000..3fdb9d15
Binary files /dev/null and b/test/de_fuzz/corpus/8914a489cdbaa77c7c20bcfabba9f613ad57c6d2 differ
diff --git a/test/de_fuzz/corpus/8930331f8651d0d7379a26980e8d3f14e2b1bfef b/test/de_fuzz/corpus/8930331f8651d0d7379a26980e8d3f14e2b1bfef
new file mode 100644
index 00000000..9898a4da
Binary files /dev/null and b/test/de_fuzz/corpus/8930331f8651d0d7379a26980e8d3f14e2b1bfef differ
diff --git a/test/de_fuzz/corpus/8982191511152cffc87e967e7d39f87384b62654 b/test/de_fuzz/corpus/8982191511152cffc87e967e7d39f87384b62654
new file mode 100644
index 00000000..645ad4db
Binary files /dev/null and b/test/de_fuzz/corpus/8982191511152cffc87e967e7d39f87384b62654 differ
diff --git a/test/de_fuzz/corpus/898e263b72c39c43ca91307bd6b1bf51078c6839 b/test/de_fuzz/corpus/898e263b72c39c43ca91307bd6b1bf51078c6839
new file mode 100644
index 00000000..07b63972
Binary files /dev/null and b/test/de_fuzz/corpus/898e263b72c39c43ca91307bd6b1bf51078c6839 differ
diff --git a/test/de_fuzz/corpus/89a98ad2967bea06449a03974503f22d3a014b4f b/test/de_fuzz/corpus/89a98ad2967bea06449a03974503f22d3a014b4f
new file mode 100644
index 00000000..7a02dba9
Binary files /dev/null and b/test/de_fuzz/corpus/89a98ad2967bea06449a03974503f22d3a014b4f differ
diff --git a/test/de_fuzz/corpus/89b75574c219b25cb6c16f434f77dae92d13bc93 b/test/de_fuzz/corpus/89b75574c219b25cb6c16f434f77dae92d13bc93
new file mode 100644
index 00000000..0cce56ab
Binary files /dev/null and b/test/de_fuzz/corpus/89b75574c219b25cb6c16f434f77dae92d13bc93 differ
diff --git a/test/de_fuzz/corpus/89cceb067d6f28cc57b900c63f272ce2ff0a478c b/test/de_fuzz/corpus/89cceb067d6f28cc57b900c63f272ce2ff0a478c
new file mode 100644
index 00000000..e69e4e2a
Binary files /dev/null and b/test/de_fuzz/corpus/89cceb067d6f28cc57b900c63f272ce2ff0a478c differ
diff --git a/test/de_fuzz/corpus/89cda2a6722c73499b8d5fdbb428effda4f6b222 b/test/de_fuzz/corpus/89cda2a6722c73499b8d5fdbb428effda4f6b222
new file mode 100644
index 00000000..0625d96b
--- /dev/null
+++ b/test/de_fuzz/corpus/89cda2a6722c73499b8d5fdbb428effda4f6b222
@@ -0,0 +1 @@
+Z(((((((a+)+)+)+)+)+)+š+|Y(((((((a+)+)+)+)+)+)+)+|X(((((((a+)+)+)+)+)+)+)+|W(((((((a+)+)+)+)+)+)+)+;(V((()+)+|Y(((Ø××מÔÖÏ)+)+)+)+)+)+|X(((((((a+)+)+)+)+)+)+)+|W(((((((a+)+)+)+)+)+)+)+;|V(((((((a+)+)+)+)+)+)+)+|CZ(((((((a+)+)+)+)+)+)+)+|CY(((((((a+)+)+)+)+)+)+)+|CX(((((((a+)+)+)+)+)+)+)+|CW(((((((a+)+)+)+((((a+)+)+)+)+)+)+)+|CZ(((((((a+)+)+)+)+)+)+)+|CY(((((((a+)+)+)+)+)+)+)+|CX(((((((a+)+)+)+)+)+)+)+|CW(((((((a+)+)+)+)+)+)+)+|CV,((((((a+)+)+)+)+)+)+)+|(a+)+bc
\ No newline at end of file
diff --git a/test/de_fuzz/corpus/89d633a63ced4142aa246d829ea99baf894e4dd7 b/test/de_fuzz/corpus/89d633a63ced4142aa246d829ea99baf894e4dd7
new file mode 100644
index 00000000..0383b95f
--- /dev/null
+++ b/test/de_fuzz/corpus/89d633a63ced4142aa246d829ea99baf894e4dd7
@@ -0,0 +1,5 @@
+8^\l*(?:((.8^\l*(?:((.*?)\W*(?1)\W*{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{
+ {{{{{{{{{{{{
+ *?)\W*(?1)\W*{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{
+ {{{{{{{{{{{{
+
\ No newline at end of file
diff --git a/test/de_fuzz/corpus/8a0cab91fe55dd6690c9720efbb3c5771fed8a3a b/test/de_fuzz/corpus/8a0cab91fe55dd6690c9720efbb3c5771fed8a3a
new file mode 100644
index 00000000..0c4b0376
Binary files /dev/null and b/test/de_fuzz/corpus/8a0cab91fe55dd6690c9720efbb3c5771fed8a3a differ
diff --git a/test/de_fuzz/corpus/8a1e77b6bac38c0da776ede2d3896bd8e13c240b b/test/de_fuzz/corpus/8a1e77b6bac38c0da776ede2d3896bd8e13c240b
new file mode 100644
index 00000000..ebefbada
Binary files /dev/null and b/test/de_fuzz/corpus/8a1e77b6bac38c0da776ede2d3896bd8e13c240b differ
diff --git a/test/de_fuzz/corpus/8a3c978f458e67c59bb36724ccba690d8c14abfb b/test/de_fuzz/corpus/8a3c978f458e67c59bb36724ccba690d8c14abfb
new file mode 100644
index 00000000..fdcd4bf7
Binary files /dev/null and b/test/de_fuzz/corpus/8a3c978f458e67c59bb36724ccba690d8c14abfb differ
diff --git a/test/de_fuzz/corpus/8a44a82ecd73a61994b27dea7e93fca78f005a0a b/test/de_fuzz/corpus/8a44a82ecd73a61994b27dea7e93fca78f005a0a
new file mode 100644
index 00000000..39df0d58
Binary files /dev/null and b/test/de_fuzz/corpus/8a44a82ecd73a61994b27dea7e93fca78f005a0a differ
diff --git a/test/de_fuzz/corpus/8a54b289c3c08d3c94d26651d18d7191bc5279eb b/test/de_fuzz/corpus/8a54b289c3c08d3c94d26651d18d7191bc5279eb
new file mode 100644
index 00000000..f7380a4b
Binary files /dev/null and b/test/de_fuzz/corpus/8a54b289c3c08d3c94d26651d18d7191bc5279eb differ
diff --git a/test/de_fuzz/corpus/8a643925a655c74488a579723954af11509e0006 b/test/de_fuzz/corpus/8a643925a655c74488a579723954af11509e0006
new file mode 100644
index 00000000..50312065
Binary files /dev/null and b/test/de_fuzz/corpus/8a643925a655c74488a579723954af11509e0006 differ
diff --git a/test/de_fuzz/corpus/8a6c12012ec9c4e8b0cd23a2df396688b12a780c b/test/de_fuzz/corpus/8a6c12012ec9c4e8b0cd23a2df396688b12a780c
new file mode 100644
index 00000000..168cd28f
Binary files /dev/null and b/test/de_fuzz/corpus/8a6c12012ec9c4e8b0cd23a2df396688b12a780c differ
diff --git a/test/de_fuzz/corpus/8a71589497132b18fc1ae8ef0c92a4a8b5630ffb b/test/de_fuzz/corpus/8a71589497132b18fc1ae8ef0c92a4a8b5630ffb
new file mode 100644
index 00000000..74fe850d
Binary files /dev/null and b/test/de_fuzz/corpus/8a71589497132b18fc1ae8ef0c92a4a8b5630ffb differ
diff --git a/test/de_fuzz/corpus/8a93dd6964e292891f2c84082c3d29ad88134470 b/test/de_fuzz/corpus/8a93dd6964e292891f2c84082c3d29ad88134470
new file mode 100644
index 00000000..fe3cf043
Binary files /dev/null and b/test/de_fuzz/corpus/8a93dd6964e292891f2c84082c3d29ad88134470 differ
diff --git a/test/de_fuzz/corpus/8abdd3d6502b310f62170afe83fbcbaccc53c1c4 b/test/de_fuzz/corpus/8abdd3d6502b310f62170afe83fbcbaccc53c1c4
new file mode 100644
index 00000000..c39600f9
Binary files /dev/null and b/test/de_fuzz/corpus/8abdd3d6502b310f62170afe83fbcbaccc53c1c4 differ
diff --git a/test/de_fuzz/corpus/8ac9600cf57f41e17cb8004249d738f39263fdc3 b/test/de_fuzz/corpus/8ac9600cf57f41e17cb8004249d738f39263fdc3
new file mode 100644
index 00000000..60cba3f4
Binary files /dev/null and b/test/de_fuzz/corpus/8ac9600cf57f41e17cb8004249d738f39263fdc3 differ
diff --git a/test/de_fuzz/corpus/8acdb5aaec9273aba72507dc6deff040893c40e4 b/test/de_fuzz/corpus/8acdb5aaec9273aba72507dc6deff040893c40e4
new file mode 100644
index 00000000..d31ef80d
Binary files /dev/null and b/test/de_fuzz/corpus/8acdb5aaec9273aba72507dc6deff040893c40e4 differ
diff --git a/test/de_fuzz/corpus/8aea9b82db5c67f1d051014334033d02e819de2a b/test/de_fuzz/corpus/8aea9b82db5c67f1d051014334033d02e819de2a
new file mode 100644
index 00000000..3275b5e4
Binary files /dev/null and b/test/de_fuzz/corpus/8aea9b82db5c67f1d051014334033d02e819de2a differ
diff --git a/test/de_fuzz/corpus/8b13eaa5a71365fae3d8502151f1d9465e19fa55 b/test/de_fuzz/corpus/8b13eaa5a71365fae3d8502151f1d9465e19fa55
new file mode 100644
index 00000000..e7e4840f
Binary files /dev/null and b/test/de_fuzz/corpus/8b13eaa5a71365fae3d8502151f1d9465e19fa55 differ
diff --git a/test/de_fuzz/corpus/8b6cdb7d86fe6da29a892826a9022b5369e6ff5c b/test/de_fuzz/corpus/8b6cdb7d86fe6da29a892826a9022b5369e6ff5c
new file mode 100644
index 00000000..6570281b
Binary files /dev/null and b/test/de_fuzz/corpus/8b6cdb7d86fe6da29a892826a9022b5369e6ff5c differ
diff --git a/test/de_fuzz/corpus/8b77a150601bb8f24c3e0f74adcb590746eca563 b/test/de_fuzz/corpus/8b77a150601bb8f24c3e0f74adcb590746eca563
new file mode 100644
index 00000000..25f88c0a
Binary files /dev/null and b/test/de_fuzz/corpus/8b77a150601bb8f24c3e0f74adcb590746eca563 differ
diff --git a/test/de_fuzz/corpus/8b7de5617bbe0639d7fdee9c3d56cf585bb04ff2 b/test/de_fuzz/corpus/8b7de5617bbe0639d7fdee9c3d56cf585bb04ff2
new file mode 100644
index 00000000..000dcab4
Binary files /dev/null and b/test/de_fuzz/corpus/8b7de5617bbe0639d7fdee9c3d56cf585bb04ff2 differ
diff --git a/test/de_fuzz/corpus/8bb1b99d4e2b731bc20ae508d8e0decec4311094 b/test/de_fuzz/corpus/8bb1b99d4e2b731bc20ae508d8e0decec4311094
new file mode 100644
index 00000000..74ecb137
Binary files /dev/null and b/test/de_fuzz/corpus/8bb1b99d4e2b731bc20ae508d8e0decec4311094 differ
diff --git a/test/de_fuzz/corpus/8bc4aaac51e8eb3d6ab5c5a054b93d8bdeca3845 b/test/de_fuzz/corpus/8bc4aaac51e8eb3d6ab5c5a054b93d8bdeca3845
new file mode 100644
index 00000000..50d50093
Binary files /dev/null and b/test/de_fuzz/corpus/8bc4aaac51e8eb3d6ab5c5a054b93d8bdeca3845 differ
diff --git a/test/de_fuzz/corpus/8bfac694265c22d10ae5ccd669bbda8497e37141 b/test/de_fuzz/corpus/8bfac694265c22d10ae5ccd669bbda8497e37141
new file mode 100644
index 00000000..2141aa0e
Binary files /dev/null and b/test/de_fuzz/corpus/8bfac694265c22d10ae5ccd669bbda8497e37141 differ
diff --git a/test/de_fuzz/corpus/8c3641012d799445add3ca513c2148e9a37d429f b/test/de_fuzz/corpus/8c3641012d799445add3ca513c2148e9a37d429f
new file mode 100644
index 00000000..636e375f
Binary files /dev/null and b/test/de_fuzz/corpus/8c3641012d799445add3ca513c2148e9a37d429f differ
diff --git a/test/de_fuzz/corpus/8c86d6defb7f94e5f41ac47f7d45cd234bffa851 b/test/de_fuzz/corpus/8c86d6defb7f94e5f41ac47f7d45cd234bffa851
new file mode 100644
index 00000000..cc49cf6e
Binary files /dev/null and b/test/de_fuzz/corpus/8c86d6defb7f94e5f41ac47f7d45cd234bffa851 differ
diff --git a/test/de_fuzz/corpus/8c88a57828530a49a49a06cd41ea46f868d25a2f b/test/de_fuzz/corpus/8c88a57828530a49a49a06cd41ea46f868d25a2f
new file mode 100644
index 00000000..95d78b59
Binary files /dev/null and b/test/de_fuzz/corpus/8c88a57828530a49a49a06cd41ea46f868d25a2f differ
diff --git a/test/de_fuzz/corpus/8cbf330b23b7e5df5eafb2b72179c895c26f944e b/test/de_fuzz/corpus/8cbf330b23b7e5df5eafb2b72179c895c26f944e
new file mode 100644
index 00000000..54c3c153
Binary files /dev/null and b/test/de_fuzz/corpus/8cbf330b23b7e5df5eafb2b72179c895c26f944e differ
diff --git a/test/de_fuzz/corpus/8ced000ebfdaeadb3500bd16daac362a12dce2c1 b/test/de_fuzz/corpus/8ced000ebfdaeadb3500bd16daac362a12dce2c1
new file mode 100644
index 00000000..76aee9be
Binary files /dev/null and b/test/de_fuzz/corpus/8ced000ebfdaeadb3500bd16daac362a12dce2c1 differ
diff --git a/test/de_fuzz/corpus/8cf32ab3b982048dfbfc21b7cb05f8fb21bb93ca b/test/de_fuzz/corpus/8cf32ab3b982048dfbfc21b7cb05f8fb21bb93ca
new file mode 100644
index 00000000..012811de
Binary files /dev/null and b/test/de_fuzz/corpus/8cf32ab3b982048dfbfc21b7cb05f8fb21bb93ca differ
diff --git a/test/de_fuzz/corpus/8cfe478913b95d509c9bfad36b5d143bd748a44c b/test/de_fuzz/corpus/8cfe478913b95d509c9bfad36b5d143bd748a44c
new file mode 100644
index 00000000..349a5b6b
Binary files /dev/null and b/test/de_fuzz/corpus/8cfe478913b95d509c9bfad36b5d143bd748a44c differ
diff --git a/test/de_fuzz/corpus/8d35ad200004362b46e6b0c61e75b79f2f7480e5 b/test/de_fuzz/corpus/8d35ad200004362b46e6b0c61e75b79f2f7480e5
new file mode 100644
index 00000000..3dbbcc6d
Binary files /dev/null and b/test/de_fuzz/corpus/8d35ad200004362b46e6b0c61e75b79f2f7480e5 differ
diff --git a/test/de_fuzz/corpus/8d406e0e3dfa191db7da78499f717de2f71cc631 b/test/de_fuzz/corpus/8d406e0e3dfa191db7da78499f717de2f71cc631
new file mode 100644
index 00000000..949bb8b6
Binary files /dev/null and b/test/de_fuzz/corpus/8d406e0e3dfa191db7da78499f717de2f71cc631 differ
diff --git a/test/de_fuzz/corpus/8d508a8ba89408c391639b4e6deeb8a8e19c8e61 b/test/de_fuzz/corpus/8d508a8ba89408c391639b4e6deeb8a8e19c8e61
new file mode 100644
index 00000000..e6058ff6
Binary files /dev/null and b/test/de_fuzz/corpus/8d508a8ba89408c391639b4e6deeb8a8e19c8e61 differ
diff --git a/test/de_fuzz/corpus/8d5b7eb2401ea7e1faeeefaa5bffa3e2483329a8 b/test/de_fuzz/corpus/8d5b7eb2401ea7e1faeeefaa5bffa3e2483329a8
new file mode 100644
index 00000000..5cb0c909
Binary files /dev/null and b/test/de_fuzz/corpus/8d5b7eb2401ea7e1faeeefaa5bffa3e2483329a8 differ
diff --git a/test/de_fuzz/corpus/8d7a85c4a16107a5bf53d50ca96d0179766455c2 b/test/de_fuzz/corpus/8d7a85c4a16107a5bf53d50ca96d0179766455c2
new file mode 100644
index 00000000..028b8a16
Binary files /dev/null and b/test/de_fuzz/corpus/8d7a85c4a16107a5bf53d50ca96d0179766455c2 differ
diff --git a/test/de_fuzz/corpus/8d95ea8babebdebd2432fdccff8a8b40c8fbbc9a b/test/de_fuzz/corpus/8d95ea8babebdebd2432fdccff8a8b40c8fbbc9a
new file mode 100644
index 00000000..dd4b0b9c
Binary files /dev/null and b/test/de_fuzz/corpus/8d95ea8babebdebd2432fdccff8a8b40c8fbbc9a differ
diff --git a/test/de_fuzz/corpus/8d9eba73a42fb975df2ef1dabb2ada811d714a4c b/test/de_fuzz/corpus/8d9eba73a42fb975df2ef1dabb2ada811d714a4c
new file mode 100644
index 00000000..e9a1a382
Binary files /dev/null and b/test/de_fuzz/corpus/8d9eba73a42fb975df2ef1dabb2ada811d714a4c differ
diff --git a/test/de_fuzz/corpus/8dbde3c66eb71410a453a37207ac871f1baa91c6 b/test/de_fuzz/corpus/8dbde3c66eb71410a453a37207ac871f1baa91c6
new file mode 100644
index 00000000..f78863d6
Binary files /dev/null and b/test/de_fuzz/corpus/8dbde3c66eb71410a453a37207ac871f1baa91c6 differ
diff --git a/test/de_fuzz/corpus/8dc830a5e6663e7b66edeafb131af4bfe7419940 b/test/de_fuzz/corpus/8dc830a5e6663e7b66edeafb131af4bfe7419940
new file mode 100644
index 00000000..db8e0755
Binary files /dev/null and b/test/de_fuzz/corpus/8dc830a5e6663e7b66edeafb131af4bfe7419940 differ
diff --git a/test/de_fuzz/corpus/8dd0c8132d1a16a89a5a8a76bd7ed36bfa44ea92 b/test/de_fuzz/corpus/8dd0c8132d1a16a89a5a8a76bd7ed36bfa44ea92
new file mode 100644
index 00000000..90725bdb
Binary files /dev/null and b/test/de_fuzz/corpus/8dd0c8132d1a16a89a5a8a76bd7ed36bfa44ea92 differ
diff --git a/test/de_fuzz/corpus/8e41e4a0fa2d8b1866fb283f4e176b94c16be9f2 b/test/de_fuzz/corpus/8e41e4a0fa2d8b1866fb283f4e176b94c16be9f2
new file mode 100644
index 00000000..9d19754f
Binary files /dev/null and b/test/de_fuzz/corpus/8e41e4a0fa2d8b1866fb283f4e176b94c16be9f2 differ
diff --git a/test/de_fuzz/corpus/8e9ca224319049c63b16d5a0837d2549d68526f9 b/test/de_fuzz/corpus/8e9ca224319049c63b16d5a0837d2549d68526f9
new file mode 100644
index 00000000..46b63545
Binary files /dev/null and b/test/de_fuzz/corpus/8e9ca224319049c63b16d5a0837d2549d68526f9 differ
diff --git a/test/de_fuzz/corpus/8eaab4a599ae04b0032d7f142bff4a258ca35f6e b/test/de_fuzz/corpus/8eaab4a599ae04b0032d7f142bff4a258ca35f6e
new file mode 100644
index 00000000..5d4fe139
Binary files /dev/null and b/test/de_fuzz/corpus/8eaab4a599ae04b0032d7f142bff4a258ca35f6e differ
diff --git a/test/de_fuzz/corpus/8ed1b883e26fd301bd114be3353b0ef8715934f4 b/test/de_fuzz/corpus/8ed1b883e26fd301bd114be3353b0ef8715934f4
new file mode 100644
index 00000000..c56da8be
Binary files /dev/null and b/test/de_fuzz/corpus/8ed1b883e26fd301bd114be3353b0ef8715934f4 differ
diff --git a/test/de_fuzz/corpus/8eec6dd446890066f217f401a37a8a404549b7c9 b/test/de_fuzz/corpus/8eec6dd446890066f217f401a37a8a404549b7c9
new file mode 100644
index 00000000..1a14c249
Binary files /dev/null and b/test/de_fuzz/corpus/8eec6dd446890066f217f401a37a8a404549b7c9 differ
diff --git a/test/de_fuzz/corpus/8f5843cb5d4e8e842e8377f3e3891ee20bb4d5bd b/test/de_fuzz/corpus/8f5843cb5d4e8e842e8377f3e3891ee20bb4d5bd
new file mode 100644
index 00000000..b66adbb8
Binary files /dev/null and b/test/de_fuzz/corpus/8f5843cb5d4e8e842e8377f3e3891ee20bb4d5bd differ
diff --git a/test/de_fuzz/corpus/8f761765af89d2dac91bf8814aab7cf2ad0d01f9 b/test/de_fuzz/corpus/8f761765af89d2dac91bf8814aab7cf2ad0d01f9
new file mode 100644
index 00000000..31b77da0
Binary files /dev/null and b/test/de_fuzz/corpus/8f761765af89d2dac91bf8814aab7cf2ad0d01f9 differ
diff --git a/test/de_fuzz/corpus/8fd0cc3edb201cc0be0a1b3813f063daf372f7a1 b/test/de_fuzz/corpus/8fd0cc3edb201cc0be0a1b3813f063daf372f7a1
new file mode 100644
index 00000000..7f687fc9
Binary files /dev/null and b/test/de_fuzz/corpus/8fd0cc3edb201cc0be0a1b3813f063daf372f7a1 differ
diff --git a/test/de_fuzz/corpus/9010edc8d773afedf5d21547cee74e1ad87f7610 b/test/de_fuzz/corpus/9010edc8d773afedf5d21547cee74e1ad87f7610
new file mode 100644
index 00000000..f14b717b
Binary files /dev/null and b/test/de_fuzz/corpus/9010edc8d773afedf5d21547cee74e1ad87f7610 differ
diff --git a/test/de_fuzz/corpus/9073d51e0dcce305a95b76ee86a539e4adbfdf8d b/test/de_fuzz/corpus/9073d51e0dcce305a95b76ee86a539e4adbfdf8d
new file mode 100644
index 00000000..aefe6c9d
Binary files /dev/null and b/test/de_fuzz/corpus/9073d51e0dcce305a95b76ee86a539e4adbfdf8d differ
diff --git a/test/de_fuzz/corpus/9087db17aa6709f7eef1319f16c47ad0302d46cd b/test/de_fuzz/corpus/9087db17aa6709f7eef1319f16c47ad0302d46cd
new file mode 100644
index 00000000..50b00300
Binary files /dev/null and b/test/de_fuzz/corpus/9087db17aa6709f7eef1319f16c47ad0302d46cd differ
diff --git a/test/de_fuzz/corpus/90a7e2a64d5d5f8ef4d560e1f251f978c1110c57 b/test/de_fuzz/corpus/90a7e2a64d5d5f8ef4d560e1f251f978c1110c57
new file mode 100644
index 00000000..4580049b
Binary files /dev/null and b/test/de_fuzz/corpus/90a7e2a64d5d5f8ef4d560e1f251f978c1110c57 differ
diff --git a/test/de_fuzz/corpus/90a881234619aa3c88a7d58dffe5bcf3bae208a6 b/test/de_fuzz/corpus/90a881234619aa3c88a7d58dffe5bcf3bae208a6
new file mode 100644
index 00000000..c06a8b21
Binary files /dev/null and b/test/de_fuzz/corpus/90a881234619aa3c88a7d58dffe5bcf3bae208a6 differ
diff --git a/test/de_fuzz/corpus/90c2174c9d211f9aee24eecb391a7d09216582c6 b/test/de_fuzz/corpus/90c2174c9d211f9aee24eecb391a7d09216582c6
new file mode 100644
index 00000000..b477c07f
Binary files /dev/null and b/test/de_fuzz/corpus/90c2174c9d211f9aee24eecb391a7d09216582c6 differ
diff --git a/test/de_fuzz/corpus/90cc8abcca37232875220b2d724b55852ff012d3 b/test/de_fuzz/corpus/90cc8abcca37232875220b2d724b55852ff012d3
new file mode 100644
index 00000000..7fa18199
Binary files /dev/null and b/test/de_fuzz/corpus/90cc8abcca37232875220b2d724b55852ff012d3 differ
diff --git a/test/de_fuzz/corpus/9108f56b563192c3c58b14f6d788af544fb2fdb2 b/test/de_fuzz/corpus/9108f56b563192c3c58b14f6d788af544fb2fdb2
new file mode 100644
index 00000000..3081dc76
Binary files /dev/null and b/test/de_fuzz/corpus/9108f56b563192c3c58b14f6d788af544fb2fdb2 differ
diff --git a/test/de_fuzz/corpus/9121a5c427b93173bba96d86feda56b7cedd4bf1 b/test/de_fuzz/corpus/9121a5c427b93173bba96d86feda56b7cedd4bf1
new file mode 100644
index 00000000..91845e86
Binary files /dev/null and b/test/de_fuzz/corpus/9121a5c427b93173bba96d86feda56b7cedd4bf1 differ
diff --git a/test/de_fuzz/corpus/912f19316232b1ed873b096a691fd64fcec3f159 b/test/de_fuzz/corpus/912f19316232b1ed873b096a691fd64fcec3f159
new file mode 100644
index 00000000..07e4a56d
Binary files /dev/null and b/test/de_fuzz/corpus/912f19316232b1ed873b096a691fd64fcec3f159 differ
diff --git a/test/de_fuzz/corpus/9157934e991731f375064b51748e31c05bb1d330 b/test/de_fuzz/corpus/9157934e991731f375064b51748e31c05bb1d330
new file mode 100644
index 00000000..2f437deb
Binary files /dev/null and b/test/de_fuzz/corpus/9157934e991731f375064b51748e31c05bb1d330 differ
diff --git a/test/de_fuzz/corpus/9157f47f7117cc3789de59184c16b8b166459057 b/test/de_fuzz/corpus/9157f47f7117cc3789de59184c16b8b166459057
new file mode 100644
index 00000000..3668136c
Binary files /dev/null and b/test/de_fuzz/corpus/9157f47f7117cc3789de59184c16b8b166459057 differ
diff --git a/test/de_fuzz/corpus/9162ccb22bc95e503a19ce9a9335e39e7b455867 b/test/de_fuzz/corpus/9162ccb22bc95e503a19ce9a9335e39e7b455867
new file mode 100644
index 00000000..f58f6971
Binary files /dev/null and b/test/de_fuzz/corpus/9162ccb22bc95e503a19ce9a9335e39e7b455867 differ
diff --git a/test/de_fuzz/corpus/9183e7980685966e1af526fae1573d8e50dc5095 b/test/de_fuzz/corpus/9183e7980685966e1af526fae1573d8e50dc5095
new file mode 100644
index 00000000..88d1ebe6
Binary files /dev/null and b/test/de_fuzz/corpus/9183e7980685966e1af526fae1573d8e50dc5095 differ
diff --git a/test/de_fuzz/corpus/919bd6189714557c19695346641e3ce2fae2318e b/test/de_fuzz/corpus/919bd6189714557c19695346641e3ce2fae2318e
new file mode 100644
index 00000000..167d4a30
Binary files /dev/null and b/test/de_fuzz/corpus/919bd6189714557c19695346641e3ce2fae2318e differ
diff --git a/test/de_fuzz/corpus/919ebaa50d2e84a6ff0588a02a3e2d84bf523ca7 b/test/de_fuzz/corpus/919ebaa50d2e84a6ff0588a02a3e2d84bf523ca7
new file mode 100644
index 00000000..db740b52
Binary files /dev/null and b/test/de_fuzz/corpus/919ebaa50d2e84a6ff0588a02a3e2d84bf523ca7 differ
diff --git a/test/de_fuzz/corpus/91a91b313f95c6c4fb1af70d8fd1599e2b1f25d9 b/test/de_fuzz/corpus/91a91b313f95c6c4fb1af70d8fd1599e2b1f25d9
new file mode 100644
index 00000000..d0155d0e
Binary files /dev/null and b/test/de_fuzz/corpus/91a91b313f95c6c4fb1af70d8fd1599e2b1f25d9 differ
diff --git a/test/de_fuzz/corpus/91af9fc0e4c285f42b81879067b0edce60cafa70 b/test/de_fuzz/corpus/91af9fc0e4c285f42b81879067b0edce60cafa70
new file mode 100644
index 00000000..dba70132
--- /dev/null
+++ b/test/de_fuzz/corpus/91af9fc0e4c285f42b81879067b0edce60cafa70
@@ -0,0 +1,105 @@
+'è (?: [\040\t](?i)\(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* # optional leading comment
+(?: (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+) # initial word
+(?: (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+) )* # further okay, if led by a period
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* @ (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: # if led by a period...
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] 2 # ]
+) # ...further okay
+)*
+)* # further okay, if led by comma
+: # closing colon
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* )? # optional route
+(?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+) # initial word
+(?: (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+) )* # further okay, if led by a period
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* @ (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # initial subdomain
+(?: #
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. # if led by a period...
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\04²)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # ...further okay
+)*
+# address spec
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] ^ | \\[\x80-\xff] )* \) )*
+\) )* > # trailing >
+# name and address
+) (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* # optional trailing comment
+
+
\ No newline at end of file
diff --git a/test/de_fuzz/corpus/91b5485dcd5ec6920812f7c794b290b873cff5b4 b/test/de_fuzz/corpus/91b5485dcd5ec6920812f7c794b290b873cff5b4
new file mode 100644
index 00000000..612ea614
Binary files /dev/null and b/test/de_fuzz/corpus/91b5485dcd5ec6920812f7c794b290b873cff5b4 differ
diff --git a/test/de_fuzz/corpus/91cdb29bfb07eba6d056f20a81060a23dcf92a7f b/test/de_fuzz/corpus/91cdb29bfb07eba6d056f20a81060a23dcf92a7f
new file mode 100644
index 00000000..a1270348
Binary files /dev/null and b/test/de_fuzz/corpus/91cdb29bfb07eba6d056f20a81060a23dcf92a7f differ
diff --git a/test/de_fuzz/corpus/91edeef90532a1ffacc52f66a72f475aebffb7da b/test/de_fuzz/corpus/91edeef90532a1ffacc52f66a72f475aebffb7da
new file mode 100644
index 00000000..c48e3d15
Binary files /dev/null and b/test/de_fuzz/corpus/91edeef90532a1ffacc52f66a72f475aebffb7da differ
diff --git a/test/de_fuzz/corpus/921b6db50d9740413e58ab74573c626a779030a7 b/test/de_fuzz/corpus/921b6db50d9740413e58ab74573c626a779030a7
new file mode 100644
index 00000000..99bb9178
Binary files /dev/null and b/test/de_fuzz/corpus/921b6db50d9740413e58ab74573c626a779030a7 differ
diff --git a/test/de_fuzz/corpus/923249900551d6b49c43217748cafce9829a29bb b/test/de_fuzz/corpus/923249900551d6b49c43217748cafce9829a29bb
new file mode 100644
index 00000000..2e63437b
Binary files /dev/null and b/test/de_fuzz/corpus/923249900551d6b49c43217748cafce9829a29bb differ
diff --git a/test/de_fuzz/corpus/9241303cba0d7cd46aa5d9e6e7ff881fcecb4010 b/test/de_fuzz/corpus/9241303cba0d7cd46aa5d9e6e7ff881fcecb4010
new file mode 100644
index 00000000..9356788f
Binary files /dev/null and b/test/de_fuzz/corpus/9241303cba0d7cd46aa5d9e6e7ff881fcecb4010 differ
diff --git a/test/de_fuzz/corpus/9254c2917d65dad11b79fae05327c8cc99b6f5cc b/test/de_fuzz/corpus/9254c2917d65dad11b79fae05327c8cc99b6f5cc
new file mode 100644
index 00000000..97aa4126
Binary files /dev/null and b/test/de_fuzz/corpus/9254c2917d65dad11b79fae05327c8cc99b6f5cc differ
diff --git a/test/de_fuzz/corpus/927f3dddb75ee89edf8f374b59f85370251932f4 b/test/de_fuzz/corpus/927f3dddb75ee89edf8f374b59f85370251932f4
new file mode 100644
index 00000000..db9087e9
Binary files /dev/null and b/test/de_fuzz/corpus/927f3dddb75ee89edf8f374b59f85370251932f4 differ
diff --git a/test/de_fuzz/corpus/92834e0f490cf93e21904c60eb629ffd0ae17e1f b/test/de_fuzz/corpus/92834e0f490cf93e21904c60eb629ffd0ae17e1f
new file mode 100644
index 00000000..66df47c8
Binary files /dev/null and b/test/de_fuzz/corpus/92834e0f490cf93e21904c60eb629ffd0ae17e1f differ
diff --git a/test/de_fuzz/corpus/92cde191efd60278f511d2f2a69bfebed7f3644a b/test/de_fuzz/corpus/92cde191efd60278f511d2f2a69bfebed7f3644a
new file mode 100644
index 00000000..691f6170
Binary files /dev/null and b/test/de_fuzz/corpus/92cde191efd60278f511d2f2a69bfebed7f3644a differ
diff --git a/test/de_fuzz/corpus/92cfad5581185abd31befdf24ed395353b76829e b/test/de_fuzz/corpus/92cfad5581185abd31befdf24ed395353b76829e
new file mode 100644
index 00000000..573c07f0
Binary files /dev/null and b/test/de_fuzz/corpus/92cfad5581185abd31befdf24ed395353b76829e differ
diff --git a/test/de_fuzz/corpus/92d34554aaef072445deb2e00d28ff6a4beb309b b/test/de_fuzz/corpus/92d34554aaef072445deb2e00d28ff6a4beb309b
new file mode 100644
index 00000000..f010906d
Binary files /dev/null and b/test/de_fuzz/corpus/92d34554aaef072445deb2e00d28ff6a4beb309b differ
diff --git a/test/de_fuzz/corpus/9356f1b2283b407bce7a9d7f59bfab0eff4331ac b/test/de_fuzz/corpus/9356f1b2283b407bce7a9d7f59bfab0eff4331ac
new file mode 100644
index 00000000..116661bf
Binary files /dev/null and b/test/de_fuzz/corpus/9356f1b2283b407bce7a9d7f59bfab0eff4331ac differ
diff --git a/test/de_fuzz/corpus/93a62204887598972d600f65779ee1581d0b460b b/test/de_fuzz/corpus/93a62204887598972d600f65779ee1581d0b460b
new file mode 100644
index 00000000..a5ae033f
Binary files /dev/null and b/test/de_fuzz/corpus/93a62204887598972d600f65779ee1581d0b460b differ
diff --git a/test/de_fuzz/corpus/93bc46155fa01903809bfe23a96e20f94b4206e5 b/test/de_fuzz/corpus/93bc46155fa01903809bfe23a96e20f94b4206e5
new file mode 100644
index 00000000..09f52380
Binary files /dev/null and b/test/de_fuzz/corpus/93bc46155fa01903809bfe23a96e20f94b4206e5 differ
diff --git a/test/de_fuzz/corpus/93ee1917fd104a81e997655e3249912b037a0c63 b/test/de_fuzz/corpus/93ee1917fd104a81e997655e3249912b037a0c63
new file mode 100644
index 00000000..48350ba1
Binary files /dev/null and b/test/de_fuzz/corpus/93ee1917fd104a81e997655e3249912b037a0c63 differ
diff --git a/test/de_fuzz/corpus/941a948f29d304b59cd35f05a657b3223af66fec b/test/de_fuzz/corpus/941a948f29d304b59cd35f05a657b3223af66fec
new file mode 100644
index 00000000..e95cd342
Binary files /dev/null and b/test/de_fuzz/corpus/941a948f29d304b59cd35f05a657b3223af66fec differ
diff --git a/test/de_fuzz/corpus/944edc11de4405a783948b6f8a8bf7e4876d8cf0 b/test/de_fuzz/corpus/944edc11de4405a783948b6f8a8bf7e4876d8cf0
new file mode 100644
index 00000000..9bc12ccb
Binary files /dev/null and b/test/de_fuzz/corpus/944edc11de4405a783948b6f8a8bf7e4876d8cf0 differ
diff --git a/test/de_fuzz/corpus/9451f7b03278bc5d417a877c389fc7c447d1a6b2 b/test/de_fuzz/corpus/9451f7b03278bc5d417a877c389fc7c447d1a6b2
new file mode 100644
index 00000000..7b515f4c
Binary files /dev/null and b/test/de_fuzz/corpus/9451f7b03278bc5d417a877c389fc7c447d1a6b2 differ
diff --git a/test/de_fuzz/corpus/9467c64aa68232ffce07f80ce602e92eee9bc1b1 b/test/de_fuzz/corpus/9467c64aa68232ffce07f80ce602e92eee9bc1b1
new file mode 100644
index 00000000..7a2c4421
--- /dev/null
+++ b/test/de_fuzz/corpus/9467c64aa68232ffce07f80ce602e92eee9bc1b1
@@ -0,0 +1 @@
+8^\l*(?:((.*?)\W*(?1)\W*{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{))\W*$The quick b{4,}rown )ox
\ No newline at end of file
diff --git a/test/de_fuzz/corpus/9468e536b602e4f20aee6399e62e7955b305155d b/test/de_fuzz/corpus/9468e536b602e4f20aee6399e62e7955b305155d
new file mode 100644
index 00000000..8ed883be
Binary files /dev/null and b/test/de_fuzz/corpus/9468e536b602e4f20aee6399e62e7955b305155d differ
diff --git a/test/de_fuzz/corpus/9477ca9dbc598c472bd0b694979c228842d7eaf6 b/test/de_fuzz/corpus/9477ca9dbc598c472bd0b694979c228842d7eaf6
new file mode 100644
index 00000000..e98eac44
Binary files /dev/null and b/test/de_fuzz/corpus/9477ca9dbc598c472bd0b694979c228842d7eaf6 differ
diff --git a/test/de_fuzz/corpus/9482e8f0749045afe42106aa589cfdd1fb468954 b/test/de_fuzz/corpus/9482e8f0749045afe42106aa589cfdd1fb468954
new file mode 100644
index 00000000..db46042d
Binary files /dev/null and b/test/de_fuzz/corpus/9482e8f0749045afe42106aa589cfdd1fb468954 differ
diff --git a/test/de_fuzz/corpus/9496206d4cff2951bcf572a6e66087ddef6584c1 b/test/de_fuzz/corpus/9496206d4cff2951bcf572a6e66087ddef6584c1
new file mode 100644
index 00000000..2e4ca985
Binary files /dev/null and b/test/de_fuzz/corpus/9496206d4cff2951bcf572a6e66087ddef6584c1 differ
diff --git a/test/de_fuzz/corpus/94a7fb53f8efaa8d7d4c82fb8ae9239fbca85100 b/test/de_fuzz/corpus/94a7fb53f8efaa8d7d4c82fb8ae9239fbca85100
new file mode 100644
index 00000000..9e740735
Binary files /dev/null and b/test/de_fuzz/corpus/94a7fb53f8efaa8d7d4c82fb8ae9239fbca85100 differ
diff --git a/test/de_fuzz/corpus/94dd8753c45908012991e1a9a71abd88187d43f0 b/test/de_fuzz/corpus/94dd8753c45908012991e1a9a71abd88187d43f0
new file mode 100644
index 00000000..4f47897e
Binary files /dev/null and b/test/de_fuzz/corpus/94dd8753c45908012991e1a9a71abd88187d43f0 differ
diff --git a/test/de_fuzz/corpus/94f4074d11208a3d25fe2d8c16406e0c48689b50 b/test/de_fuzz/corpus/94f4074d11208a3d25fe2d8c16406e0c48689b50
new file mode 100644
index 00000000..6a32527b
--- /dev/null
+++ b/test/de_fuzz/corpus/94f4074d11208a3d25fe2d8c16406e0c48689b50
@@ -0,0 +1 @@
+*^\n*(?:((.*?)\W*(?1)\W*\΃öƒ××ÑØ\W*(?3)\W*\2|\ZZZZZZZZZZZ(*SKIP)ZZZZZZZZ)\W*\2| |((.)\W*(?3)\W*\4|\ZZZZZZZZZZZ(*SKIP)ZZZZZZZZZZZZZZZZZZZZZZ.)ZZZZZZZZZZZZZZZZZZZZZ ZZZZZZZZZZ.)\W*(?4)\W*\4|\ZZZZZZZZZZZ(*SKIP)ZZZZZZZZZZZZZZZZZZZZZ
\ No newline at end of file
diff --git a/test/de_fuzz/corpus/94f9b0d6d3e80a005f552154580a36c7f332d99f b/test/de_fuzz/corpus/94f9b0d6d3e80a005f552154580a36c7f332d99f
new file mode 100644
index 00000000..a40a82d4
Binary files /dev/null and b/test/de_fuzz/corpus/94f9b0d6d3e80a005f552154580a36c7f332d99f differ
diff --git a/test/de_fuzz/corpus/9511e41c14d623207a753d1f6d25148569ad9ccf b/test/de_fuzz/corpus/9511e41c14d623207a753d1f6d25148569ad9ccf
new file mode 100644
index 00000000..ac970efc
Binary files /dev/null and b/test/de_fuzz/corpus/9511e41c14d623207a753d1f6d25148569ad9ccf differ
diff --git a/test/de_fuzz/corpus/9532e23d20debea383f30c3fb80704c8560ce57c b/test/de_fuzz/corpus/9532e23d20debea383f30c3fb80704c8560ce57c
new file mode 100644
index 00000000..4764ac2e
Binary files /dev/null and b/test/de_fuzz/corpus/9532e23d20debea383f30c3fb80704c8560ce57c differ
diff --git a/test/de_fuzz/corpus/953f5ad4ebf7cff6348aebf3e548a6df25e2d1a0 b/test/de_fuzz/corpus/953f5ad4ebf7cff6348aebf3e548a6df25e2d1a0
new file mode 100644
index 00000000..422beddd
Binary files /dev/null and b/test/de_fuzz/corpus/953f5ad4ebf7cff6348aebf3e548a6df25e2d1a0 differ
diff --git a/test/de_fuzz/corpus/954824291c0444533144f4ef8337f93ff5690270 b/test/de_fuzz/corpus/954824291c0444533144f4ef8337f93ff5690270
new file mode 100644
index 00000000..e44c62b6
Binary files /dev/null and b/test/de_fuzz/corpus/954824291c0444533144f4ef8337f93ff5690270 differ
diff --git a/test/de_fuzz/corpus/9560ef2d52dd89bfe5305dbc57bdfe8007c051b6 b/test/de_fuzz/corpus/9560ef2d52dd89bfe5305dbc57bdfe8007c051b6
new file mode 100644
index 00000000..5cb9ed26
Binary files /dev/null and b/test/de_fuzz/corpus/9560ef2d52dd89bfe5305dbc57bdfe8007c051b6 differ
diff --git a/test/de_fuzz/corpus/956720968bea982d7b00c810026920dd7f6519a5 b/test/de_fuzz/corpus/956720968bea982d7b00c810026920dd7f6519a5
new file mode 100644
index 00000000..25b5fff5
Binary files /dev/null and b/test/de_fuzz/corpus/956720968bea982d7b00c810026920dd7f6519a5 differ
diff --git a/test/de_fuzz/corpus/957a44a98d02d7d7a92123c18858235d60289d40 b/test/de_fuzz/corpus/957a44a98d02d7d7a92123c18858235d60289d40
new file mode 100644
index 00000000..6c89d63c
Binary files /dev/null and b/test/de_fuzz/corpus/957a44a98d02d7d7a92123c18858235d60289d40 differ
diff --git a/test/de_fuzz/corpus/957a662a8f98306331d003515651a2928e1d92d9 b/test/de_fuzz/corpus/957a662a8f98306331d003515651a2928e1d92d9
new file mode 100644
index 00000000..690d5ff2
Binary files /dev/null and b/test/de_fuzz/corpus/957a662a8f98306331d003515651a2928e1d92d9 differ
diff --git a/test/de_fuzz/corpus/958fe52907b344eae2fcb043c2ddc3f2088c972e b/test/de_fuzz/corpus/958fe52907b344eae2fcb043c2ddc3f2088c972e
new file mode 100644
index 00000000..5c73f25d
Binary files /dev/null and b/test/de_fuzz/corpus/958fe52907b344eae2fcb043c2ddc3f2088c972e differ
diff --git a/test/de_fuzz/corpus/95c77bc27be394e5ea2a483055f2df06ed68c2c2 b/test/de_fuzz/corpus/95c77bc27be394e5ea2a483055f2df06ed68c2c2
new file mode 100644
index 00000000..ff841a8a
Binary files /dev/null and b/test/de_fuzz/corpus/95c77bc27be394e5ea2a483055f2df06ed68c2c2 differ
diff --git a/test/de_fuzz/corpus/95e5c5c29856380806d789465810803705469b8a b/test/de_fuzz/corpus/95e5c5c29856380806d789465810803705469b8a
new file mode 100644
index 00000000..1c7bfa21
Binary files /dev/null and b/test/de_fuzz/corpus/95e5c5c29856380806d789465810803705469b8a differ
diff --git a/test/de_fuzz/corpus/960592812285dfad015e84e97ae0245a292e0dc8 b/test/de_fuzz/corpus/960592812285dfad015e84e97ae0245a292e0dc8
new file mode 100644
index 00000000..fb59a853
Binary files /dev/null and b/test/de_fuzz/corpus/960592812285dfad015e84e97ae0245a292e0dc8 differ
diff --git a/test/de_fuzz/corpus/96191e7eada0162ca87df97e009f52d3e6824213 b/test/de_fuzz/corpus/96191e7eada0162ca87df97e009f52d3e6824213
new file mode 100644
index 00000000..c7d0231f
Binary files /dev/null and b/test/de_fuzz/corpus/96191e7eada0162ca87df97e009f52d3e6824213 differ
diff --git a/test/de_fuzz/corpus/9635b18a4b7e4e72e413b0529e8d6ad285ab32ad b/test/de_fuzz/corpus/9635b18a4b7e4e72e413b0529e8d6ad285ab32ad
new file mode 100644
index 00000000..09b8c191
Binary files /dev/null and b/test/de_fuzz/corpus/9635b18a4b7e4e72e413b0529e8d6ad285ab32ad differ
diff --git a/test/de_fuzz/corpus/964d2f554e8bdd56f5a2bf30d4bdfe2511504b43 b/test/de_fuzz/corpus/964d2f554e8bdd56f5a2bf30d4bdfe2511504b43
new file mode 100644
index 00000000..56925c82
Binary files /dev/null and b/test/de_fuzz/corpus/964d2f554e8bdd56f5a2bf30d4bdfe2511504b43 differ
diff --git a/test/de_fuzz/corpus/96658465820fb382d8c5a1f15342ada6ee30a4d8 b/test/de_fuzz/corpus/96658465820fb382d8c5a1f15342ada6ee30a4d8
new file mode 100644
index 00000000..4c1e4770
Binary files /dev/null and b/test/de_fuzz/corpus/96658465820fb382d8c5a1f15342ada6ee30a4d8 differ
diff --git a/test/de_fuzz/corpus/96be4355691f3bff412affb0f3ccfc9b1e983338 b/test/de_fuzz/corpus/96be4355691f3bff412affb0f3ccfc9b1e983338
new file mode 100644
index 00000000..511f2ee1
Binary files /dev/null and b/test/de_fuzz/corpus/96be4355691f3bff412affb0f3ccfc9b1e983338 differ
diff --git a/test/de_fuzz/corpus/9739e828cd2ac96c9103a466406757b32c0fea84 b/test/de_fuzz/corpus/9739e828cd2ac96c9103a466406757b32c0fea84
new file mode 100644
index 00000000..526a6db7
Binary files /dev/null and b/test/de_fuzz/corpus/9739e828cd2ac96c9103a466406757b32c0fea84 differ
diff --git a/test/de_fuzz/corpus/9746e1803a59de5d16c40f659c0409a5a0c79e3b b/test/de_fuzz/corpus/9746e1803a59de5d16c40f659c0409a5a0c79e3b
new file mode 100644
index 00000000..68d8bd61
Binary files /dev/null and b/test/de_fuzz/corpus/9746e1803a59de5d16c40f659c0409a5a0c79e3b differ
diff --git a/test/de_fuzz/corpus/978e955659df16d62ddea3addeef7e7ed3c689e5 b/test/de_fuzz/corpus/978e955659df16d62ddea3addeef7e7ed3c689e5
new file mode 100644
index 00000000..29b496a9
Binary files /dev/null and b/test/de_fuzz/corpus/978e955659df16d62ddea3addeef7e7ed3c689e5 differ
diff --git a/test/de_fuzz/corpus/979a494c4dd3d0a85e37eada9f99b03eebdd97c2 b/test/de_fuzz/corpus/979a494c4dd3d0a85e37eada9f99b03eebdd97c2
new file mode 100644
index 00000000..dad68174
--- /dev/null
+++ b/test/de_fuzz/corpus/979a494c4dd3d0a85e37eada9f99b03eebdd97c2
@@ -0,0 +1 @@
+Z(((((((a+)+)+)+)+)+)+)+|Y(((((((a+)+)+)+)+)+)+)+|X((((ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(((a+)+)+)+)+)+)+)+|W(((((((a+)+)+)+)+)+)+)+|V(((((((a+)+)+)+)+)+)+)+|CZ(((((((a+)+)+)+)+)+)+)+|CY(((((((a+)+)+)+)+)+)+)+|CX(((((((a+)+)+)+)+)+)+)+|CW(((((((a+)+)+)+)+)+)+)+|CV(((((((a+)+)+)+)+)+)+)+|(a+)+bc
\ No newline at end of file
diff --git a/test/de_fuzz/corpus/97c61030646737d2b74cda1208c2c55936aae52b b/test/de_fuzz/corpus/97c61030646737d2b74cda1208c2c55936aae52b
new file mode 100644
index 00000000..d8c40935
Binary files /dev/null and b/test/de_fuzz/corpus/97c61030646737d2b74cda1208c2c55936aae52b differ
diff --git a/test/de_fuzz/corpus/97d04e84f4caeb8efb1edacff725cbbb06f52d8f b/test/de_fuzz/corpus/97d04e84f4caeb8efb1edacff725cbbb06f52d8f
new file mode 100644
index 00000000..901eca18
Binary files /dev/null and b/test/de_fuzz/corpus/97d04e84f4caeb8efb1edacff725cbbb06f52d8f differ
diff --git a/test/de_fuzz/corpus/97d5ea4385818cf687574b61fa4eafaf43569988 b/test/de_fuzz/corpus/97d5ea4385818cf687574b61fa4eafaf43569988
new file mode 100644
index 00000000..1270742b
Binary files /dev/null and b/test/de_fuzz/corpus/97d5ea4385818cf687574b61fa4eafaf43569988 differ
diff --git a/test/de_fuzz/corpus/97d6813565e1c10b6e2c8040e3002d169149d692 b/test/de_fuzz/corpus/97d6813565e1c10b6e2c8040e3002d169149d692
new file mode 100644
index 00000000..e5dc2e0e
Binary files /dev/null and b/test/de_fuzz/corpus/97d6813565e1c10b6e2c8040e3002d169149d692 differ
diff --git a/test/de_fuzz/corpus/97df6c6ddefb76b0923bb433e7f252f98e4413c8 b/test/de_fuzz/corpus/97df6c6ddefb76b0923bb433e7f252f98e4413c8
new file mode 100644
index 00000000..f16ae61b
Binary files /dev/null and b/test/de_fuzz/corpus/97df6c6ddefb76b0923bb433e7f252f98e4413c8 differ
diff --git a/test/de_fuzz/corpus/981fa176b79bbd2ecb420ded2986278f4460e684 b/test/de_fuzz/corpus/981fa176b79bbd2ecb420ded2986278f4460e684
new file mode 100644
index 00000000..8bfa43ab
Binary files /dev/null and b/test/de_fuzz/corpus/981fa176b79bbd2ecb420ded2986278f4460e684 differ
diff --git a/test/de_fuzz/corpus/984153c3f166f7f0d8b033b3af4ecdfb1f3fa7e1 b/test/de_fuzz/corpus/984153c3f166f7f0d8b033b3af4ecdfb1f3fa7e1
new file mode 100644
index 00000000..ecd31a74
Binary files /dev/null and b/test/de_fuzz/corpus/984153c3f166f7f0d8b033b3af4ecdfb1f3fa7e1 differ
diff --git a/test/de_fuzz/corpus/9864765fa7573cf993bcad67eaa267fe4189df61 b/test/de_fuzz/corpus/9864765fa7573cf993bcad67eaa267fe4189df61
new file mode 100644
index 00000000..6f979234
Binary files /dev/null and b/test/de_fuzz/corpus/9864765fa7573cf993bcad67eaa267fe4189df61 differ
diff --git a/test/de_fuzz/corpus/9873bc6b068e078e36afaf1a690cbf557a0b15f3 b/test/de_fuzz/corpus/9873bc6b068e078e36afaf1a690cbf557a0b15f3
new file mode 100644
index 00000000..98214f6a
Binary files /dev/null and b/test/de_fuzz/corpus/9873bc6b068e078e36afaf1a690cbf557a0b15f3 differ
diff --git a/test/de_fuzz/corpus/98a176b755ed18cbf5123328d208ba89472ca76d b/test/de_fuzz/corpus/98a176b755ed18cbf5123328d208ba89472ca76d
new file mode 100644
index 00000000..926853bf
Binary files /dev/null and b/test/de_fuzz/corpus/98a176b755ed18cbf5123328d208ba89472ca76d differ
diff --git a/test/de_fuzz/corpus/98c9654fe4a5146648450920df5fee779d43cfb8 b/test/de_fuzz/corpus/98c9654fe4a5146648450920df5fee779d43cfb8
new file mode 100644
index 00000000..31ec765c
Binary files /dev/null and b/test/de_fuzz/corpus/98c9654fe4a5146648450920df5fee779d43cfb8 differ
diff --git a/test/de_fuzz/corpus/98d3e857badf680cf10f1e2917b67b388832b30a b/test/de_fuzz/corpus/98d3e857badf680cf10f1e2917b67b388832b30a
new file mode 100644
index 00000000..cbd5f224
Binary files /dev/null and b/test/de_fuzz/corpus/98d3e857badf680cf10f1e2917b67b388832b30a differ
diff --git a/test/de_fuzz/corpus/98d94be42fbd8a49c18f4f58870331631f0bf33c b/test/de_fuzz/corpus/98d94be42fbd8a49c18f4f58870331631f0bf33c
new file mode 100644
index 00000000..a902ea7a
Binary files /dev/null and b/test/de_fuzz/corpus/98d94be42fbd8a49c18f4f58870331631f0bf33c differ
diff --git a/test/de_fuzz/corpus/98e2c32043901b5b7cbfb2c9e313961537c8f51e b/test/de_fuzz/corpus/98e2c32043901b5b7cbfb2c9e313961537c8f51e
new file mode 100644
index 00000000..d69c0919
--- /dev/null
+++ b/test/de_fuzz/corpus/98e2c32043901b5b7cbfb2c9e313961537c8f51e
@@ -0,0 +1,62 @@
+'è (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* # optional leading comment
+(?: (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+) # initial word
+(?: (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^] )* \) )*
+\) )* \. (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+) )* # further okay, if led by a period
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* @ (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # initial subdomain
+(?: #
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. # if led by a period...
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\04²)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # ...further okay
+)*
+# address spec
+(?: [\040\t] | \(
+(?: [\^\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] ^ | \\[\x80-\xff] )* \) )*
+\) )* > # trailing >
+# name and address
+) (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* # optional trailing comment
+
+
\ No newline at end of file
diff --git a/test/de_fuzz/corpus/98f1a1634c1b37f0c99184f5e3fba6fdb673c61c b/test/de_fuzz/corpus/98f1a1634c1b37f0c99184f5e3fba6fdb673c61c
new file mode 100644
index 00000000..1876ad51
Binary files /dev/null and b/test/de_fuzz/corpus/98f1a1634c1b37f0c99184f5e3fba6fdb673c61c differ
diff --git a/test/de_fuzz/corpus/98f57f727819a15b01bcd426834485d223153c40 b/test/de_fuzz/corpus/98f57f727819a15b01bcd426834485d223153c40
new file mode 100644
index 00000000..bab12cef
Binary files /dev/null and b/test/de_fuzz/corpus/98f57f727819a15b01bcd426834485d223153c40 differ
diff --git a/test/de_fuzz/corpus/99386f0d636ec10bc340c90383576c572e674813 b/test/de_fuzz/corpus/99386f0d636ec10bc340c90383576c572e674813
new file mode 100644
index 00000000..f0249194
Binary files /dev/null and b/test/de_fuzz/corpus/99386f0d636ec10bc340c90383576c572e674813 differ
diff --git a/test/de_fuzz/corpus/9951036933ae502b12ffacc9990abcec8f77aebb b/test/de_fuzz/corpus/9951036933ae502b12ffacc9990abcec8f77aebb
new file mode 100644
index 00000000..cb193d8e
--- /dev/null
+++ b/test/de_fuzz/corpus/9951036933ae502b12ffacc9990abcec8f77aebb
@@ -0,0 +1 @@
+â(?:ab(?i)x(û-\Uy|(?!)z|b)ZZZZ
\ No newline at end of file
diff --git a/test/de_fuzz/corpus/9956d58c74aef40648334cae9cc5e8e7f0a67b53 b/test/de_fuzz/corpus/9956d58c74aef40648334cae9cc5e8e7f0a67b53
new file mode 100644
index 00000000..ec3658ab
Binary files /dev/null and b/test/de_fuzz/corpus/9956d58c74aef40648334cae9cc5e8e7f0a67b53 differ
diff --git a/test/de_fuzz/corpus/995ab4509e85391141f7c61818ebf82ffe051c65 b/test/de_fuzz/corpus/995ab4509e85391141f7c61818ebf82ffe051c65
new file mode 100644
index 00000000..887f89b6
Binary files /dev/null and b/test/de_fuzz/corpus/995ab4509e85391141f7c61818ebf82ffe051c65 differ
diff --git a/test/de_fuzz/corpus/998c93a75a6a363361e2de80866382ed2a64a046 b/test/de_fuzz/corpus/998c93a75a6a363361e2de80866382ed2a64a046
new file mode 100644
index 00000000..beca4fe9
Binary files /dev/null and b/test/de_fuzz/corpus/998c93a75a6a363361e2de80866382ed2a64a046 differ
diff --git a/test/de_fuzz/corpus/99938e4cf18db9f702a7005245ccd4ef01315cae b/test/de_fuzz/corpus/99938e4cf18db9f702a7005245ccd4ef01315cae
new file mode 100644
index 00000000..8bd31659
Binary files /dev/null and b/test/de_fuzz/corpus/99938e4cf18db9f702a7005245ccd4ef01315cae differ
diff --git a/test/de_fuzz/corpus/9996989f7de88d1df56fbefb1c8a2592e05d308d b/test/de_fuzz/corpus/9996989f7de88d1df56fbefb1c8a2592e05d308d
new file mode 100644
index 00000000..b0f096a1
Binary files /dev/null and b/test/de_fuzz/corpus/9996989f7de88d1df56fbefb1c8a2592e05d308d differ
diff --git a/test/de_fuzz/corpus/99f42371faf295b159081ffcb4d293910b3c4571 b/test/de_fuzz/corpus/99f42371faf295b159081ffcb4d293910b3c4571
new file mode 100644
index 00000000..f3a44add
Binary files /dev/null and b/test/de_fuzz/corpus/99f42371faf295b159081ffcb4d293910b3c4571 differ
diff --git a/test/de_fuzz/corpus/9a200d2db43251d6308e6fddfcbbbea5a5cd776a b/test/de_fuzz/corpus/9a200d2db43251d6308e6fddfcbbbea5a5cd776a
new file mode 100644
index 00000000..8311b5fb
Binary files /dev/null and b/test/de_fuzz/corpus/9a200d2db43251d6308e6fddfcbbbea5a5cd776a differ
diff --git a/test/de_fuzz/corpus/9a57a7412ddd79849b272686dc35e23ccade1f43 b/test/de_fuzz/corpus/9a57a7412ddd79849b272686dc35e23ccade1f43
new file mode 100644
index 00000000..b09123d1
Binary files /dev/null and b/test/de_fuzz/corpus/9a57a7412ddd79849b272686dc35e23ccade1f43 differ
diff --git a/test/de_fuzz/corpus/9a5fd9637d18cea4266544257e52861a091db572 b/test/de_fuzz/corpus/9a5fd9637d18cea4266544257e52861a091db572
new file mode 100644
index 00000000..8db92c5a
Binary files /dev/null and b/test/de_fuzz/corpus/9a5fd9637d18cea4266544257e52861a091db572 differ
diff --git a/test/de_fuzz/corpus/9aa661b2b2dafd52cb2df5e24de46e2dd19a8f6f b/test/de_fuzz/corpus/9aa661b2b2dafd52cb2df5e24de46e2dd19a8f6f
new file mode 100644
index 00000000..31eae9ed
--- /dev/null
+++ b/test/de_fuzz/corpus/9aa661b2b2dafd52cb2df5e24de46e2dd19a8f6f
@@ -0,0 +1 @@
+Z(((((((a+)+)+)+)+))++)+|Y(((((((a+)+)+)++)+)+)+|CY(((((((a+)+)+)+)+)+)«)+|CX(((((((a+)+)+)+)+)+)+)+|CW(((((((a+)+)+)+)+)+)$)+|CV(((((((a+)+)+)+)+)+)+)+|!a+)+bc
\ No newline at end of file
diff --git a/test/de_fuzz/corpus/9ab58ea4c37c2bdf199ca8104743dbc237ef1207 b/test/de_fuzz/corpus/9ab58ea4c37c2bdf199ca8104743dbc237ef1207
new file mode 100644
index 00000000..d8f1f08f
Binary files /dev/null and b/test/de_fuzz/corpus/9ab58ea4c37c2bdf199ca8104743dbc237ef1207 differ
diff --git a/test/de_fuzz/corpus/9ad741dd37b1d496c7bb03153758d51fc6ef57de b/test/de_fuzz/corpus/9ad741dd37b1d496c7bb03153758d51fc6ef57de
new file mode 100644
index 00000000..db93e0aa
Binary files /dev/null and b/test/de_fuzz/corpus/9ad741dd37b1d496c7bb03153758d51fc6ef57de differ
diff --git a/test/de_fuzz/corpus/9b13239360bd7fba004a00c98efefe67e0c53c08 b/test/de_fuzz/corpus/9b13239360bd7fba004a00c98efefe67e0c53c08
new file mode 100644
index 00000000..46ba0874
Binary files /dev/null and b/test/de_fuzz/corpus/9b13239360bd7fba004a00c98efefe67e0c53c08 differ
diff --git a/test/de_fuzz/corpus/9b13d9dc8ead97661848d5d9c01bddcb762012db b/test/de_fuzz/corpus/9b13d9dc8ead97661848d5d9c01bddcb762012db
new file mode 100644
index 00000000..87041d36
Binary files /dev/null and b/test/de_fuzz/corpus/9b13d9dc8ead97661848d5d9c01bddcb762012db differ
diff --git a/test/de_fuzz/corpus/9b77ee64747d6c133fba1b6f0290f200c216b9a0 b/test/de_fuzz/corpus/9b77ee64747d6c133fba1b6f0290f200c216b9a0
new file mode 100644
index 00000000..d60ceb64
Binary files /dev/null and b/test/de_fuzz/corpus/9b77ee64747d6c133fba1b6f0290f200c216b9a0 differ
diff --git a/test/de_fuzz/corpus/9b82dae52df24ae9b8f4c07106a20ee12d18c4e8 b/test/de_fuzz/corpus/9b82dae52df24ae9b8f4c07106a20ee12d18c4e8
new file mode 100644
index 00000000..63044baf
Binary files /dev/null and b/test/de_fuzz/corpus/9b82dae52df24ae9b8f4c07106a20ee12d18c4e8 differ
diff --git a/test/de_fuzz/corpus/9b8f4ddd767befcffc83887052f2b916fccf301f b/test/de_fuzz/corpus/9b8f4ddd767befcffc83887052f2b916fccf301f
new file mode 100644
index 00000000..d1d2717d
Binary files /dev/null and b/test/de_fuzz/corpus/9b8f4ddd767befcffc83887052f2b916fccf301f differ
diff --git a/test/de_fuzz/corpus/9b918790b0c6a22f24646c84718f0cd74c5640b3 b/test/de_fuzz/corpus/9b918790b0c6a22f24646c84718f0cd74c5640b3
new file mode 100644
index 00000000..5b1f1086
Binary files /dev/null and b/test/de_fuzz/corpus/9b918790b0c6a22f24646c84718f0cd74c5640b3 differ
diff --git a/test/de_fuzz/corpus/9bd61669da962538f49b32649225006ef9073994 b/test/de_fuzz/corpus/9bd61669da962538f49b32649225006ef9073994
new file mode 100644
index 00000000..4a16d6b5
Binary files /dev/null and b/test/de_fuzz/corpus/9bd61669da962538f49b32649225006ef9073994 differ
diff --git a/test/de_fuzz/corpus/9c0118889ec4f36db4f1008fb944944643187a64 b/test/de_fuzz/corpus/9c0118889ec4f36db4f1008fb944944643187a64
new file mode 100644
index 00000000..0f57d97f
Binary files /dev/null and b/test/de_fuzz/corpus/9c0118889ec4f36db4f1008fb944944643187a64 differ
diff --git a/test/de_fuzz/corpus/9c04cf2ae6a579f2237c3077abf949060b227d4f b/test/de_fuzz/corpus/9c04cf2ae6a579f2237c3077abf949060b227d4f
new file mode 100644
index 00000000..2edbb6c4
--- /dev/null
+++ b/test/de_fuzz/corpus/9c04cf2ae6a579f2237c3077abf949060b227d4f
@@ -0,0 +1 @@
+Z(((((((a+)+)+)+)+)+)+)+|Y(((((((a+)+)+)+)+)+)+)+|X(((((((a+)+)+)+)+)+)+)+|W(((((((a+)+)+)+)+)+)+)+;|V((()+)+|Y(((((((a+)+)+)+)+)+)+)+|X(((((((a+)+)+)+)+)+)+)+|W(((((((a+)+)+)+)+)+)+)+;|V(((((((a+)+)+)+)+)+)+)+|CZ(((((((a+)+)+)+)+)+)+)+|CY(((((((a+)+)+)+)+)+)+)+|CX(((((((a+)+)+)+)+)+(?-i:abcd)((((a+)+)+)+((((a+)+)+)+)+)+)+)+|CZ(((((((a+)+)+)+)+)+)+)+|CY(((((((a+)+)+)+)+)+)+)+|CX(((((((a+)+)+)+)+)+)+)+|CW(((((((a+)+)+)+)+)+)+)+|CV,((((((a+)+)+)+)+)+)+)+|(a+)+bc
\ No newline at end of file
diff --git a/test/de_fuzz/corpus/9c30d38de953f01778deaa05084a2f994109a1d0 b/test/de_fuzz/corpus/9c30d38de953f01778deaa05084a2f994109a1d0
new file mode 100644
index 00000000..45329785
--- /dev/null
+++ b/test/de_fuzz/corpus/9c30d38de953f01778deaa05084a2f994109a1d0
@@ -0,0 +1,164 @@
+) # initial subdomain
+(?: #
+(?: [\039\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. # if led by a period...
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\0-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+) # initial word
+(?: (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] \N{newline}| \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] itial subdomain
+(?: #
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. # if led by a period...
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..nod followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # ...further okay
+)*
+(?: (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* , (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* @ (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # initial subdomain
+(?: #
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. # if led by a period...
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # ...further okay
+)*
+)* # further okay, if led by comma
+: # closing colon
+(?: [\040\t] | \(
+(?: [^\\ #
+(?: [\039\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. # if led by a period...
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\0-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] # Anything except backslash and quote
+| # or
+\\ [^\x80-\xff] # Escaped something (something != CR)
+)* " # closing quote
+) # initial word
+(?: (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] \N{newline}| \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+|
+" (?: # opening quote...
+[^\\\x80-\xff\n\015"] itial subdomain
+(?: #
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. # if led by a period...
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..nod followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # ...further okay
+)*
+(?: (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* , (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* @ (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # initial subdomain
+(?: #
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. # if led by a period...
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* @ (?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
+\] # ]
+) # initial subdomain
+(?: #
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* \. # if led by a period...
+(?: [\040\t] | \(
+(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
+\) )* (?:
+[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
+| \[ # [
+(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # :((abc (?(R) )11?(R)( (?(R2)2) X | (?1) (?2) (?R) ))) abcabc1Xabc2XabcXabcabc 8^\W*(?:((.)\W*(?1W*\4|\W*.\W*))\W*$The quick brown fox
+a[[:alpha: (a)(?:b)ab|(abc)|((?|(x)|(y &^(?=.*\d)(?=.*[a-z] ^(\w++|\s++)*$this is not a line with only words and spaces! (A(A|B(*ACCEPT)|C)D)(E)AB &