--- /dev/null
+# These test special (mostly error) UTF features of DFA matching. They are a
+# selection of the more comprehensive tests that are run for non-DFA matching.
+# The output is different for the different widths.
+
+#subject dfa
+
+/X/utf
+ XX\x{d800}
+Failed: error -24: UTF-16 error: missing low surrogate at end at offset 2
+ XX\x{d800}\=offset=3
+No match
+ XX\x{d800}\=no_utf_check
+ 0: X
+ XX\x{da00}
+Failed: error -24: UTF-16 error: missing low surrogate at end at offset 2
+ XX\x{da00}\=no_utf_check
+ 0: X
+ XX\x{dc00}
+Failed: error -26: UTF-16 error: isolated low surrogate at offset 2
+ XX\x{dc00}\=no_utf_check
+ 0: X
+ XX\x{de00}
+Failed: error -26: UTF-16 error: isolated low surrogate at offset 2
+ XX\x{de00}\=no_utf_check
+ 0: X
+ XX\x{dfff}
+Failed: error -26: UTF-16 error: isolated low surrogate at offset 2
+ XX\x{dfff}\=no_utf_check
+ 0: X
+ XX\x{110000}
+** Failed: character \x{110000} is greater than 0x10ffff and so cannot be converted to UTF-16
+ XX\x{d800}\x{1234}
+Failed: error -25: UTF-16 error: invalid low surrogate at offset 3
+
+/badutf/utf
+ X\xdf
+No match
+ XX\xef
+No match
+ XXX\xef\x80
+No match
+ X\xf7
+No match
+ XX\xf7\x80
+No match
+ XXX\xf7\x80\x80
+No match
+
+/shortutf/utf
+ XX\xdf\=ph
+No match
+ XX\xef\=ph
+No match
+ XX\xef\x80\=ph
+No match
+ \xf7\=ph
+No match
+ \xf7\x80\=ph
+No match
+
+# End of testinput14