diff --git a/src/testdir/Make_all.mak b/src/testdir/Make_all.mak
index 83095fd..db6b4fa 100644
--- a/src/testdir/Make_all.mak
+++ b/src/testdir/Make_all.mak
@@ -15,9 +15,7 @@
 SCRIPTS_ALL = \
 	test42.out \
 	test44.out \
-	test69.out \
 	test70.out \
-	test95.out \
 	test99.out \
 	test_eval.out
 
diff --git a/src/testdir/Make_vms.mms b/src/testdir/Make_vms.mms
index d6d8839..5400c15 100644
--- a/src/testdir/Make_vms.mms
+++ b/src/testdir/Make_vms.mms
@@ -75,9 +75,8 @@
 
 SCRIPT = test1.out \
        test42.out test44.out test49.out \
-       test69.out \
        test77a.out \
-       test95.out test99.out \
+       test99.out \
        test_eval.out
 
 # Known problems:
diff --git a/src/testdir/test69.in b/src/testdir/test69.in
deleted file mode 100644
index 29dad8b..0000000
--- a/src/testdir/test69.in
+++ /dev/null
@@ -1,177 +0,0 @@
-Test for multi-byte text formatting.
-Also test, that 'mps' with multibyte chars works.
-And test "ra" on multi-byte characters.
-Also test byteidx() and byteidxcomp()
-
-STARTTEST
-:so mbyte.vim
-:set encoding=utf-8
-ENDTEST
-
-Results of test69:
-
-STARTTEST
-/^{/+1
-:set tw=2 fo=t
-gqgqjgqgqo
-ＸＹＺ
-abc ＸＹＺ
-ENDTEST
-
-{
-ＸＹＺ
-abc ＸＹＺ
-}
-
-STARTTEST
-/^{/+1
-:set tw=1 fo=tm
-gqgqjgqgqjgqgqjgqgqjgqgqo
-Ｘ
-Ｘa
-Ｘ a
-ＸＹ
-Ｘ Ｙ
-ENDTEST
-
-{
-Ｘ
-Ｘa
-Ｘ a
-ＸＹ
-Ｘ Ｙ
-}
-
-STARTTEST
-/^{/+1
-:set tw=2 fo=tm
-gqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqo
-Ｘ
-Ｘa
-Ｘ a
-ＸＹ
-Ｘ Ｙ
-aＸ
-abＸ
-abcＸ
-abＸ c
-abＸＹ
-ENDTEST
-
-{
-Ｘ
-Ｘa
-Ｘ a
-ＸＹ
-Ｘ Ｙ
-aＸ
-abＸ
-abcＸ
-abＸ c
-abＸＹ
-}
-
-STARTTEST
-/^{/+1
-:set ai tw=2 fo=tm
-gqgqjgqgqo
-Ｘ
-Ｘa
-ENDTEST
-
-{
-  Ｘ
-  Ｘa
-}
-
-STARTTEST
-/^{/+1
-:set noai tw=2 fo=tm
-gqgqjgqgqo
-  Ｘ
-  Ｘa
-ENDTEST
-
-{
-  Ｘ
-  Ｘa
-}
-
-STARTTEST
-/^{/+1
-:set tw=2 fo=cqm comments=n:Ｘ
-gqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqo
-Ｘ
-Ｘa
-ＸaＹ
-ＸＹ
-ＸＹＺ
-Ｘ Ｙ
-Ｘ ＹＺ
-ＸＸ
-ＸＸa
-ＸＸＹ
-ENDTEST
-
-{
-Ｘ
-Ｘa
-ＸaＹ
-ＸＹ
-ＸＹＺ
-Ｘ Ｙ
-Ｘ ＹＺ
-ＸＸ
-ＸＸa
-ＸＸＹ
-}
-
-STARTTEST
-/^{/+1
-:set tw=2 fo=tm
-RＸa
-ENDTEST
-
-{
-
-}
-
-STARTTEST
-/^{/+1
-:set mps+=u2018:u2019
-d%
-ENDTEST
-
-{
-‘ two three ’ four
-}
-STARTTEST
-/^ra test
-jVjra
-ENDTEST
-
-ra test
-ａbbａ
-ａａb
-
-STARTTEST
-:set whichwrap+=h
-/^x
-dh
-:set whichwrap-=h
-ENDTEST
-
-á
-x
-
-STARTTEST
-/^substitute
-:let y = substitute('１２３', '\zs', 'a', 'g')    | put =y
-ENDTEST
-
-substitute
-
-STARTTEST
-:g/^STARTTEST/.,/^ENDTEST/d
-:1;/^Results/,$wq! test.out
-ENDTEST
diff --git a/src/testdir/test69.ok b/src/testdir/test69.ok
deleted file mode 100644
index b80d2bb..0000000
--- a/src/testdir/test69.ok
+++ /dev/null
@@ -1,158 +0,0 @@
-Results of test69:
-
-
-{
-ＸＹＺ
-abc
-ＸＹＺ
-
-ＸＹＺ
-abc
-ＸＹＺ
-}
-
-
-{
-Ｘ
-Ｘ
-a
-Ｘ
-a
-Ｘ
-Ｙ
-Ｘ
-Ｙ
-
-Ｘ
-Ｘ
-a
-Ｘ
-a
-Ｘ
-Ｙ
-Ｘ
-Ｙ
-}
-
-
-{
-Ｘ
-Ｘ
-a
-Ｘ
-a
-Ｘ
-Ｙ
-Ｘ
-Ｙ
-a
-Ｘ
-ab
-Ｘ
-abc
-Ｘ
-ab
-Ｘ
-c
-ab
-Ｘ
-Ｙ
-
-Ｘ
-Ｘ
-a
-Ｘ
-a
-Ｘ
-Ｙ
-Ｘ
-Ｙ
-a
-Ｘ
-ab
-Ｘ
-abc
-Ｘ
-ab
-Ｘ
-c
-ab
-Ｘ
-Ｙ
-}
-
-
-{
-  Ｘ
-  Ｘ
-  a
-
-  Ｘ
-  Ｘ
-  a
-}
-
-
-{
-  Ｘ
-  Ｘ
-a
-
-  Ｘ
-  Ｘ
-a
-}
-
-
-{
-Ｘ
-Ｘa
-Ｘa
-ＸＹ
-ＸＹ
-ＸＹ
-ＸＺ
-Ｘ Ｙ
-Ｘ Ｙ
-Ｘ Ｚ
-ＸＸ
-ＸＸa
-ＸＸＹ
-
-Ｘ
-Ｘa
-Ｘa
-ＸＹ
-ＸＹ
-ＸＹ
-ＸＺ
-Ｘ Ｙ
-Ｘ Ｙ
-Ｘ Ｚ
-ＸＸ
-ＸＸa
-ＸＸＹ
-}
-
-
-{
-Ｘ
-a
-}
-
-
-{
- four
-}
-
-ra test
-aaaa
-aaa
-
-
-áx
-
-
-substitute
-a１a２a３a
-
diff --git a/src/testdir/test95.in b/src/testdir/test95.in
deleted file mode 100644
index 5422137..0000000
--- a/src/testdir/test95.in
+++ /dev/null
@@ -1,141 +0,0 @@
-Test for regexp patterns with multi-byte support, using utf-8.
-See test_regexp_latin.vim for the non-multi-byte tests.
-
-A pattern that gives the expected result produces OK, so that we know it was
-actually tried.
-
-STARTTEST
-:so small.vim
-:so mbyte.vim
-:set nocp encoding=utf-8 viminfo+=nviminfo nomore
-:" tl is a List of Lists with:
-:"    2: test auto/old/new  0: test auto/old  1: test auto/new
-:"    regexp pattern
-:"    text to test the pattern on
-:"    expected match (optional)
-:"    expected submatch 1 (optional)
-:"    expected submatch 2 (optional)
-:"    etc.
-:"  When there is no match use only the first two items.
-:let tl = []
-:
-:"""" Multi-byte character tests. These will fail unless vim is compiled
-:"""" with Multibyte (FEAT_MBYTE) or BIG/HUGE features.
-:call add(tl, [2, '[[:alpha:][=a=]]\+', '879 aiaãâaiuvna ', 'aiaãâaiuvna'])
-:call add(tl, [2, '[[=a=]]\+', 'ddaãâbcd', 'aãâ'])								" equivalence classes
-:call add(tl, [2, '[^ม ]\+', 'มม oijasoifjos ifjoisj f osij j มมมมม abcd', 'oijasoifjos'])
-:call add(tl, [2, ' [^ ]\+', 'start มabcdม ', ' มabcdม'])
-:call add(tl, [2, '[ม[:alpha:][=a=]]\+', '879 aiaãมâมaiuvna ', 'aiaãมâมaiuvna'])
-:
-:" this is not a normal "i" but 0xec
-:call add(tl, [2, '\p\+', 'ìa', 'ìa'])
-:call add(tl, [2, '\p*', 'aあ', 'aあ'])
-:
-:"""" Test recognition of some character classes
-:call add(tl, [2, '\i\+', '&*¨xx ', 'xx'])
-:call add(tl, [2, '\f\+', '&*fname ', 'fname'])
-:
-:"""" Test composing character matching
-:call add(tl, [2, '.ม', 'xม่x yมy', 'yม'])
-:call add(tl, [2, '.ม่', 'xม่x yมy', 'xม่'])
-:call add(tl, [2, "\u05b9", " x\u05b9 ", "x\u05b9"])
-:call add(tl, [2, ".\u05b9", " x\u05b9 ", "x\u05b9"])
-:call add(tl, [2, "\u05b9\u05bb", " x\u05b9\u05bb ", "x\u05b9\u05bb"])
-:call add(tl, [2, ".\u05b9\u05bb", " x\u05b9\u05bb ", "x\u05b9\u05bb"])
-:call add(tl, [2, "\u05bb\u05b9", " x\u05b9\u05bb ", "x\u05b9\u05bb"])
-:call add(tl, [2, ".\u05bb\u05b9", " x\u05b9\u05bb ", "x\u05b9\u05bb"])
-:call add(tl, [2, "\u05b9", " y\u05bb x\u05b9 ", "x\u05b9"])
-:call add(tl, [2, ".\u05b9", " y\u05bb x\u05b9 ", "x\u05b9"])
-:call add(tl, [2, "\u05b9", " y\u05bb\u05b9 x\u05b9 ", "y\u05bb\u05b9"])
-:call add(tl, [2, ".\u05b9", " y\u05bb\u05b9 x\u05b9 ", "y\u05bb\u05b9"])
-:call add(tl, [1, "\u05b9\u05bb", " y\u05b9 x\u05b9\u05bb ", "x\u05b9\u05bb"])
-:call add(tl, [2, ".\u05b9\u05bb", " y\u05bb x\u05b9\u05bb ", "x\u05b9\u05bb"])
-:call add(tl, [2, "a", "ca\u0300t"])
-:call add(tl, [2, "ca", "ca\u0300t"])
-:call add(tl, [2, "a\u0300", "ca\u0300t", "a\u0300"])
-:call add(tl, [2, 'a\%C', "ca\u0300t", "a\u0300"])
-:call add(tl, [2, 'ca\%C', "ca\u0300t", "ca\u0300"])
-:call add(tl, [2, 'ca\%Ct', "ca\u0300t", "ca\u0300t"])
-:
-:
-:"""" Test \Z
-:call add(tl, [2, 'ú\Z', 'x'])
-:call add(tl, [2, 'יהוה\Z', 'יהוה', 'יהוה'])
-:call add(tl, [2, 'יְהוָה\Z', 'יהוה', 'יהוה'])
-:call add(tl, [2, 'יהוה\Z', 'יְהוָה', 'יְהוָה'])
-:call add(tl, [2, 'יְהוָה\Z', 'יְהוָה', 'יְהוָה'])
-:call add(tl, [2, 'יְ\Z', 'וְיַ', 'יַ'])
-:call add(tl, [2, "ק\u200d\u05b9x\\Z", "xק\u200d\u05b9xy", "ק\u200d\u05b9x"])
-:call add(tl, [2, "ק\u200d\u05b9x\\Z", "xק\u200dxy", "ק\u200dx"])
-:call add(tl, [2, "ק\u200dx\\Z", "xק\u200d\u05b9xy", "ק\u200d\u05b9x"])
-:call add(tl, [2, "ק\u200dx\\Z", "xק\u200dxy", "ק\u200dx"])
-:call add(tl, [2, "\u05b9\\Z", "xyz"])
-:call add(tl, [2, "\\Z\u05b9", "xyz"])
-:call add(tl, [2, "\u05b9\\Z", "xy\u05b9z", "y\u05b9"])
-:call add(tl, [2, "\\Z\u05b9", "xy\u05b9z", "y\u05b9"])
-:call add(tl, [1, "\u05b9\\+\\Z", "xy\u05b9z\u05b9 ", "y\u05b9z\u05b9"])
-:call add(tl, [1, "\\Z\u05b9\\+", "xy\u05b9z\u05b9 ", "y\u05b9z\u05b9"])
-:
-:"""" Combining different tests and features
-:call add(tl, [2, '[^[=a=]]\+', 'ddaãâbcd', 'dd'])
-:
-:"""" Run the tests
-:
-:"
-:for t in tl
-:  let re = t[0]
-:  let pat = t[1]
-:  let text = t[2]
-:  let matchidx = 3
-:  for engine in [0, 1, 2]
-:    if engine == 2 && re == 0 || engine == 1 && re == 1
-:      continue
-:    endif
-:    let &regexpengine = engine
-:    try
-:      let l = matchlist(text, pat)
-:    catch
-:      $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . text . '\", caused an exception: \"' . v:exception . '\"'
-:    endtry
-:" check the match itself
-:    if len(l) == 0 && len(t) > matchidx
-:      $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . text . '\", did not match, expected: \"' . t[matchidx] . '\"'
-:    elseif len(l) > 0 && len(t) == matchidx
-:      $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . text . '\", match: \"' . l[0] . '\", expected no match'
-:    elseif len(t) > matchidx && l[0] != t[matchidx]
-:      $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . text . '\", match: \"' . l[0] . '\", expected: \"' . t[matchidx] . '\"'
-:    else
-:      $put ='OK ' . engine . ' - ' . pat
-:    endif
-:    if len(l) > 0
-:"   check all the nine submatches
-:      for i in range(1, 9)
-:        if len(t) <= matchidx + i
-:          let e = ''
-:        else
-:          let e = t[matchidx + i]
-:        endif
-:        if l[i] != e
-:          $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . text . '\", submatch ' . i . ': \"' . l[i] . '\", expected: \"' . e . '\"'
-:        endif
-:      endfor
-:      unlet i
-:    endif
-:  endfor
-:endfor
-:unlet t tl e l
-:
-:" check that 'ambiwidth' does not change the meaning of \p
-:set regexpengine=1 ambiwidth=single
-:$put ='eng 1 ambi single: ' . match(\"\u00EC\", '\p')
-:set regexpengine=1 ambiwidth=double
-:$put ='eng 1 ambi double: ' . match(\"\u00EC\", '\p')
-:set regexpengine=2 ambiwidth=single
-:$put ='eng 2 ambi single: ' . match(\"\u00EC\", '\p')
-:set regexpengine=2 ambiwidth=double
-:$put ='eng 2 ambi double: ' . match(\"\u00EC\", '\p')
-:
-:/\%#=1^Results/,$wq! test.out
-ENDTEST
-
-Results of test95:
diff --git a/src/testdir/test95.ok b/src/testdir/test95.ok
deleted file mode 100644
index 6762994..0000000
--- a/src/testdir/test95.ok
+++ /dev/null
@@ -1,140 +0,0 @@
-Results of test95:
-OK 0 - [[:alpha:][=a=]]\+
-OK 1 - [[:alpha:][=a=]]\+
-OK 2 - [[:alpha:][=a=]]\+
-OK 0 - [[=a=]]\+
-OK 1 - [[=a=]]\+
-OK 2 - [[=a=]]\+
-OK 0 - [^ม ]\+
-OK 1 - [^ม ]\+
-OK 2 - [^ม ]\+
-OK 0 -  [^ ]\+
-OK 1 -  [^ ]\+
-OK 2 -  [^ ]\+
-OK 0 - [ม[:alpha:][=a=]]\+
-OK 1 - [ม[:alpha:][=a=]]\+
-OK 2 - [ม[:alpha:][=a=]]\+
-OK 0 - \p\+
-OK 1 - \p\+
-OK 2 - \p\+
-OK 0 - \p*
-OK 1 - \p*
-OK 2 - \p*
-OK 0 - \i\+
-OK 1 - \i\+
-OK 2 - \i\+
-OK 0 - \f\+
-OK 1 - \f\+
-OK 2 - \f\+
-OK 0 - .ม
-OK 1 - .ม
-OK 2 - .ม
-OK 0 - .ม่
-OK 1 - .ม่
-OK 2 - .ม่
-OK 0 - ֹ
-OK 1 - ֹ
-OK 2 - ֹ
-OK 0 - .ֹ
-OK 1 - .ֹ
-OK 2 - .ֹ
-OK 0 - ֹֻ
-OK 1 - ֹֻ
-OK 2 - ֹֻ
-OK 0 - .ֹֻ
-OK 1 - .ֹֻ
-OK 2 - .ֹֻ
-OK 0 - ֹֻ
-OK 1 - ֹֻ
-OK 2 - ֹֻ
-OK 0 - .ֹֻ
-OK 1 - .ֹֻ
-OK 2 - .ֹֻ
-OK 0 - ֹ
-OK 1 - ֹ
-OK 2 - ֹ
-OK 0 - .ֹ
-OK 1 - .ֹ
-OK 2 - .ֹ
-OK 0 - ֹ
-OK 1 - ֹ
-OK 2 - ֹ
-OK 0 - .ֹ
-OK 1 - .ֹ
-OK 2 - .ֹ
-OK 0 - ֹֻ
-OK 2 - ֹֻ
-OK 0 - .ֹֻ
-OK 1 - .ֹֻ
-OK 2 - .ֹֻ
-OK 0 - a
-OK 1 - a
-OK 2 - a
-OK 0 - ca
-OK 1 - ca
-OK 2 - ca
-OK 0 - à
-OK 1 - à
-OK 2 - à
-OK 0 - a\%C
-OK 1 - a\%C
-OK 2 - a\%C
-OK 0 - ca\%C
-OK 1 - ca\%C
-OK 2 - ca\%C
-OK 0 - ca\%Ct
-OK 1 - ca\%Ct
-OK 2 - ca\%Ct
-OK 0 - ú\Z
-OK 1 - ú\Z
-OK 2 - ú\Z
-OK 0 - יהוה\Z
-OK 1 - יהוה\Z
-OK 2 - יהוה\Z
-OK 0 - יְהוָה\Z
-OK 1 - יְהוָה\Z
-OK 2 - יְהוָה\Z
-OK 0 - יהוה\Z
-OK 1 - יהוה\Z
-OK 2 - יהוה\Z
-OK 0 - יְהוָה\Z
-OK 1 - יְהוָה\Z
-OK 2 - יְהוָה\Z
-OK 0 - יְ\Z
-OK 1 - יְ\Z
-OK 2 - יְ\Z
-OK 0 - ק‍ֹx\Z
-OK 1 - ק‍ֹx\Z
-OK 2 - ק‍ֹx\Z
-OK 0 - ק‍ֹx\Z
-OK 1 - ק‍ֹx\Z
-OK 2 - ק‍ֹx\Z
-OK 0 - ק‍x\Z
-OK 1 - ק‍x\Z
-OK 2 - ק‍x\Z
-OK 0 - ק‍x\Z
-OK 1 - ק‍x\Z
-OK 2 - ק‍x\Z
-OK 0 - ֹ\Z
-OK 1 - ֹ\Z
-OK 2 - ֹ\Z
-OK 0 - \Zֹ
-OK 1 - \Zֹ
-OK 2 - \Zֹ
-OK 0 - ֹ\Z
-OK 1 - ֹ\Z
-OK 2 - ֹ\Z
-OK 0 - \Zֹ
-OK 1 - \Zֹ
-OK 2 - \Zֹ
-OK 0 - ֹ\+\Z
-OK 2 - ֹ\+\Z
-OK 0 - \Zֹ\+
-OK 2 - \Zֹ\+
-OK 0 - [^[=a=]]\+
-OK 1 - [^[=a=]]\+
-OK 2 - [^[=a=]]\+
-eng 1 ambi single: 0
-eng 1 ambi double: 0
-eng 2 ambi single: 0
-eng 2 ambi double: 0
diff --git a/src/testdir/test_regexp_utf8.vim b/src/testdir/test_regexp_utf8.vim
index 19ff882..e9d5507 100644
--- a/src/testdir/test_regexp_utf8.vim
+++ b/src/testdir/test_regexp_utf8.vim
@@ -215,3 +215,144 @@
   set re=0
 endfunc
 
+" Test for regexp patterns with multi-byte support, using utf-8.
+func Test_multibyte_chars()
+  " tl is a List of Lists with:
+  "    2: test auto/old/new  0: test auto/old  1: test auto/new
+  "    regexp pattern
+  "    text to test the pattern on
+  "    expected match (optional)
+  "    expected submatch 1 (optional)
+  "    expected submatch 2 (optional)
+  "    etc.
+  "  When there is no match use only the first two items.
+  let tl = []
+
+  " Multi-byte character tests. These will fail unless vim is compiled
+  " with Multibyte (FEAT_MBYTE) or BIG/HUGE features.
+  call add(tl, [2, '[[:alpha:][=a=]]\+', '879 aiaãâaiuvna ', 'aiaãâaiuvna'])
+  call add(tl, [2, '[[=a=]]\+', 'ddaãâbcd', 'aãâ'])								" equivalence classes
+  call add(tl, [2, '[^ม ]\+', 'มม oijasoifjos ifjoisj f osij j มมมมม abcd', 'oijasoifjos'])
+  call add(tl, [2, ' [^ ]\+', 'start มabcdม ', ' มabcdม'])
+  call add(tl, [2, '[ม[:alpha:][=a=]]\+', '879 aiaãมâมaiuvna ', 'aiaãมâมaiuvna'])
+
+  " this is not a normal "i" but 0xec
+  call add(tl, [2, '\p\+', 'ìa', 'ìa'])
+  call add(tl, [2, '\p*', 'aあ', 'aあ'])
+
+  " Test recognition of some character classes
+  call add(tl, [2, '\i\+', '&*¨xx ', 'xx'])
+  call add(tl, [2, '\f\+', '&*fname ', 'fname'])
+
+  " Test composing character matching
+  call add(tl, [2, '.ม', 'xม่x yมy', 'yม'])
+  call add(tl, [2, '.ม่', 'xม่x yมy', 'xม่'])
+  call add(tl, [2, "\u05b9", " x\u05b9 ", "x\u05b9"])
+  call add(tl, [2, ".\u05b9", " x\u05b9 ", "x\u05b9"])
+  call add(tl, [2, "\u05b9\u05bb", " x\u05b9\u05bb ", "x\u05b9\u05bb"])
+  call add(tl, [2, ".\u05b9\u05bb", " x\u05b9\u05bb ", "x\u05b9\u05bb"])
+  call add(tl, [2, "\u05bb\u05b9", " x\u05b9\u05bb ", "x\u05b9\u05bb"])
+  call add(tl, [2, ".\u05bb\u05b9", " x\u05b9\u05bb ", "x\u05b9\u05bb"])
+  call add(tl, [2, "\u05b9", " y\u05bb x\u05b9 ", "x\u05b9"])
+  call add(tl, [2, ".\u05b9", " y\u05bb x\u05b9 ", "x\u05b9"])
+  call add(tl, [2, "\u05b9", " y\u05bb\u05b9 x\u05b9 ", "y\u05bb\u05b9"])
+  call add(tl, [2, ".\u05b9", " y\u05bb\u05b9 x\u05b9 ", "y\u05bb\u05b9"])
+  call add(tl, [1, "\u05b9\u05bb", " y\u05b9 x\u05b9\u05bb ", "x\u05b9\u05bb"])
+  call add(tl, [2, ".\u05b9\u05bb", " y\u05bb x\u05b9\u05bb ", "x\u05b9\u05bb"])
+  call add(tl, [2, "a", "ca\u0300t"])
+  call add(tl, [2, "ca", "ca\u0300t"])
+  call add(tl, [2, "a\u0300", "ca\u0300t", "a\u0300"])
+  call add(tl, [2, 'a\%C', "ca\u0300t", "a\u0300"])
+  call add(tl, [2, 'ca\%C', "ca\u0300t", "ca\u0300"])
+  call add(tl, [2, 'ca\%Ct', "ca\u0300t", "ca\u0300t"])
+
+  " Test \Z
+  call add(tl, [2, 'ú\Z', 'x'])
+  call add(tl, [2, 'יהוה\Z', 'יהוה', 'יהוה'])
+  call add(tl, [2, 'יְהוָה\Z', 'יהוה', 'יהוה'])
+  call add(tl, [2, 'יהוה\Z', 'יְהוָה', 'יְהוָה'])
+  call add(tl, [2, 'יְהוָה\Z', 'יְהוָה', 'יְהוָה'])
+  call add(tl, [2, 'יְ\Z', 'וְיַ', 'יַ'])
+  call add(tl, [2, "ק\u200d\u05b9x\\Z", "xק\u200d\u05b9xy", "ק\u200d\u05b9x"])
+  call add(tl, [2, "ק\u200d\u05b9x\\Z", "xק\u200dxy", "ק\u200dx"])
+  call add(tl, [2, "ק\u200dx\\Z", "xק\u200d\u05b9xy", "ק\u200d\u05b9x"])
+  call add(tl, [2, "ק\u200dx\\Z", "xק\u200dxy", "ק\u200dx"])
+  call add(tl, [2, "\u05b9\\Z", "xyz"])
+  call add(tl, [2, "\\Z\u05b9", "xyz"])
+  call add(tl, [2, "\u05b9\\Z", "xy\u05b9z", "y\u05b9"])
+  call add(tl, [2, "\\Z\u05b9", "xy\u05b9z", "y\u05b9"])
+  call add(tl, [1, "\u05b9\\+\\Z", "xy\u05b9z\u05b9 ", "y\u05b9z\u05b9"])
+  call add(tl, [1, "\\Z\u05b9\\+", "xy\u05b9z\u05b9 ", "y\u05b9z\u05b9"])
+
+  " Combining different tests and features
+  call add(tl, [2, '[^[=a=]]\+', 'ddaãâbcd', 'dd'])
+
+  " Run the tests
+  for t in tl
+    let re = t[0]
+    let pat = t[1]
+    let text = t[2]
+    let matchidx = 3
+    for engine in [0, 1, 2]
+      if engine == 2 && re == 0 || engine == 1 && re == 1
+        continue
+      endif
+      let &regexpengine = engine
+      try
+        let l = matchlist(text, pat)
+      catch
+        call assert_report('Error ' . engine . ': pat: \"' . pat .
+		    \ '\", text: \"' . text .
+		    \ '\", caused an exception: \"' . v:exception . '\"')
+      endtry
+      " check the match itself
+      if len(l) == 0 && len(t) > matchidx
+        call assert_report('Error ' . engine . ': pat: \"' . pat .
+		    \ '\", text: \"' . text .
+		    \ '\", did not match, expected: \"' . t[matchidx] . '\"')
+      elseif len(l) > 0 && len(t) == matchidx
+        call assert_report('Error ' . engine . ': pat: \"' . pat .
+		    \ '\", text: \"' . text . '\", match: \"' . l[0] .
+		    \ '\", expected no match')
+      elseif len(t) > matchidx && l[0] != t[matchidx]
+        call assert_report('Error ' . engine . ': pat: \"' . pat .
+		    \ '\", text: \"' . text . '\", match: \"' . l[0] .
+		    \ '\", expected: \"' . t[matchidx] . '\"')
+      else
+        " Test passed
+      endif
+      if len(l) > 0
+        " check all the nine submatches
+        for i in range(1, 9)
+          if len(t) <= matchidx + i
+            let e = ''
+          else
+            let e = t[matchidx + i]
+          endif
+          if l[i] != e
+            call assert_report('Error ' . engine . ': pat: \"' . pat .
+                  \ '\", text: \"' . text . '\", submatch ' . i .
+                  \ ': \"' . l[i] . '\", expected: \"' . e . '\"')
+          endif
+        endfor
+        unlet i
+      endif
+    endfor
+  endfor
+  set regexpengine&
+endfunc
+
+" check that 'ambiwidth' does not change the meaning of \p
+func Test_ambiwidth()
+  set regexpengine=1 ambiwidth=single
+  call assert_equal(0, match("\u00EC", '\p'))
+  set regexpengine=1 ambiwidth=double
+  call assert_equal(0, match("\u00EC", '\p'))
+  set regexpengine=2 ambiwidth=single
+  call assert_equal(0, match("\u00EC", '\p'))
+  set regexpengine=2 ambiwidth=double
+  call assert_equal(0, match("\u00EC", '\p'))
+  set regexpengine& ambiwidth&
+endfunc
+
+" vim: shiftwidth=2 sts=2 expandtab
diff --git a/src/testdir/test_textformat.vim b/src/testdir/test_textformat.vim
index 3a0552b..1364dd7 100644
--- a/src/testdir/test_textformat.vim
+++ b/src/testdir/test_textformat.vim
@@ -509,3 +509,426 @@
   augroup END
   augroup! testing
 endfunc
+
+" Test for formatting multi-byte text with 'fo=t'
+func Test_tw_2_fo_t()
+  new
+  let t =<< trim END
+    {
+    ＸＹＺ
+    abc ＸＹＺ
+    }
+  END
+  call setline(1, t)
+  call cursor(2, 1)
+
+  set tw=2 fo=t
+  let t =<< trim END
+    ＸＹＺ
+    abc ＸＹＺ
+  END
+  exe "normal gqgqjgqgq"
+  exe "normal o\n" . join(t, "\n")
+
+  let expected =<< trim END
+    {
+    ＸＹＺ
+    abc
+    ＸＹＺ
+
+    ＸＹＺ
+    abc
+    ＸＹＺ
+    }
+  END
+  call assert_equal(expected, getline(1, '$'))
+
+  set tw& fo&
+  bwipe!
+endfunc
+
+" Test for formatting multi-byte text with 'fo=tm' and 'tw=1'
+func Test_tw_1_fo_tm()
+  new
+  let t =<< trim END
+    {
+    Ｘ
+    Ｘa
+    Ｘ a
+    ＸＹ
+    Ｘ Ｙ
+    }
+  END
+  call setline(1, t)
+  call cursor(2, 1)
+
+  set tw=1 fo=tm
+  let t =<< trim END
+    Ｘ
+    Ｘa
+    Ｘ a
+    ＸＹ
+    Ｘ Ｙ
+  END
+  exe "normal gqgqjgqgqjgqgqjgqgqjgqgq"
+  exe "normal o\n" . join(t, "\n")
+
+  let expected =<< trim END
+    {
+    Ｘ
+    Ｘ
+    a
+    Ｘ
+    a
+    Ｘ
+    Ｙ
+    Ｘ
+    Ｙ
+
+    Ｘ
+    Ｘ
+    a
+    Ｘ
+    a
+    Ｘ
+    Ｙ
+    Ｘ
+    Ｙ
+    }
+  END
+  call assert_equal(expected, getline(1, '$'))
+
+  set tw& fo&
+  bwipe!
+endfunc
+
+" Test for formatting multi-byte text with 'fo=tm' and 'tw=2'
+func Test_tw_2_fo_tm()
+  new
+  let t =<< trim END
+    {
+    Ｘ
+    Ｘa
+    Ｘ a
+    ＸＹ
+    Ｘ Ｙ
+    aＸ
+    abＸ
+    abcＸ
+    abＸ c
+    abＸＹ
+    }
+  END
+  call setline(1, t)
+  call cursor(2, 1)
+
+  set tw=2 fo=tm
+  let t =<< trim END
+    Ｘ
+    Ｘa
+    Ｘ a
+    ＸＹ
+    Ｘ Ｙ
+    aＸ
+    abＸ
+    abcＸ
+    abＸ c
+    abＸＹ
+  END
+  exe "normal gqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgq"
+  exe "normal o\n" . join(t, "\n")
+
+  let expected =<< trim END
+    {
+    Ｘ
+    Ｘ
+    a
+    Ｘ
+    a
+    Ｘ
+    Ｙ
+    Ｘ
+    Ｙ
+    a
+    Ｘ
+    ab
+    Ｘ
+    abc
+    Ｘ
+    ab
+    Ｘ
+    c
+    ab
+    Ｘ
+    Ｙ
+
+    Ｘ
+    Ｘ
+    a
+    Ｘ
+    a
+    Ｘ
+    Ｙ
+    Ｘ
+    Ｙ
+    a
+    Ｘ
+    ab
+    Ｘ
+    abc
+    Ｘ
+    ab
+    Ｘ
+    c
+    ab
+    Ｘ
+    Ｙ
+    }
+  END
+  call assert_equal(expected, getline(1, '$'))
+
+  set tw& fo&
+  bwipe!
+endfunc
+
+" Test for formatting multi-byte text with 'fo=tm', 'tw=2' and 'autoindent'.
+func Test_tw_2_fo_tm_ai()
+  new
+  let t =<< trim END
+    {
+      Ｘ
+      Ｘa
+    }
+  END
+  call setline(1, t)
+  call cursor(2, 1)
+
+  set ai tw=2 fo=tm
+  let t =<< trim END
+    Ｘ
+    Ｘa
+  END
+  exe "normal gqgqjgqgq"
+  exe "normal o\n" . join(t, "\n")
+
+  let expected =<< trim END
+    {
+      Ｘ
+      Ｘ
+      a
+
+      Ｘ
+      Ｘ
+      a
+    }
+  END
+  call assert_equal(expected, getline(1, '$'))
+
+  set tw& fo& ai&
+  bwipe!
+endfunc
+
+" Test for formatting multi-byte text with 'fo=tm', 'tw=2' and 'noai'.
+func Test_tw_2_fo_tm_noai()
+  new
+  let t =<< trim END
+    {
+      Ｘ
+      Ｘa
+    }
+  END
+  call setline(1, t)
+  call cursor(2, 1)
+
+  set noai tw=2 fo=tm
+  exe "normal gqgqjgqgqo\n  Ｘ\n  Ｘa"
+
+  let expected =<< trim END
+    {
+      Ｘ
+      Ｘ
+    a
+
+      Ｘ
+      Ｘ
+    a
+    }
+  END
+  call assert_equal(expected, getline(1, '$'))
+
+  set tw& fo& ai&
+  bwipe!
+endfunc
+
+func Test_tw_2_fo_cqm_com()
+  new
+  let t =<< trim END
+    {
+    Ｘ
+    Ｘa
+    ＸaＹ
+    ＸＹ
+    ＸＹＺ
+    Ｘ Ｙ
+    Ｘ ＹＺ
+    ＸＸ
+    ＸＸa
+    ＸＸＹ
+    }
+  END
+  call setline(1, t)
+  call cursor(2, 1)
+
+  set tw=2 fo=cqm comments=n:Ｘ
+  exe "normal gqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgq"
+  let t =<< trim END
+    Ｘ
+    Ｘa
+    ＸaＹ
+    ＸＹ
+    ＸＹＺ
+    Ｘ Ｙ
+    Ｘ ＹＺ
+    ＸＸ
+    ＸＸa
+    ＸＸＹ
+  END
+  exe "normal o\n" . join(t, "\n")
+
+  let expected =<< trim END
+    {
+    Ｘ
+    Ｘa
+    Ｘa
+    ＸＹ
+    ＸＹ
+    ＸＹ
+    ＸＺ
+    Ｘ Ｙ
+    Ｘ Ｙ
+    Ｘ Ｚ
+    ＸＸ
+    ＸＸa
+    ＸＸＹ
+
+    Ｘ
+    Ｘa
+    Ｘa
+    ＸＹ
+    ＸＹ
+    ＸＹ
+    ＸＺ
+    Ｘ Ｙ
+    Ｘ Ｙ
+    Ｘ Ｚ
+    ＸＸ
+    ＸＸa
+    ＸＸＹ
+    }
+  END
+  call assert_equal(expected, getline(1, '$'))
+
+  set tw& fo& comments&
+  bwipe!
+endfunc
+
+func Test_tw_2_fo_tm_replace()
+  new
+  let t =<< trim END
+    {
+
+    }
+  END
+  call setline(1, t)
+  call cursor(2, 1)
+
+  set tw=2 fo=tm
+  exe "normal RＸa"
+
+  let expected =<< trim END
+    {
+    Ｘ
+    a
+    }
+  END
+  call assert_equal(expected, getline(1, '$'))
+
+  set tw& fo&
+  bwipe!
+endfunc
+
+" Test for 'matchpairs' with multibyte chars
+func Test_mps()
+  new
+  let t =<< trim END
+    {
+    ‘ two three ’ four
+    }
+  END
+  call setline(1, t)
+  call cursor(2, 1)
+
+  exe "set mps+=\u2018:\u2019"
+  normal d%
+
+  let expected =<< trim END
+    {
+     four
+    }
+  END
+  call assert_equal(expected, getline(1, '$'))
+
+  set mps&
+  bwipe!
+endfunc
+
+" Test for ra on multi-byte characters
+func Test_ra_multibyte()
+  new
+  let t =<< trim END
+    ra test
+    ａbbａ
+    ａａb
+  END
+  call setline(1, t)
+  call cursor(1, 1)
+
+  normal jVjra
+
+  let expected =<< trim END
+    ra test
+    aaaa
+    aaa
+  END
+  call assert_equal(expected, getline(1, '$'))
+
+  bwipe!
+endfunc
+
+" Test for 'whichwrap' with multi-byte character
+func Test_whichwrap()
+  new
+  let t =<< trim END
+    á
+    x
+  END
+  call setline(1, t)
+  call cursor(2, 1)
+
+  set whichwrap+=h
+  normal dh
+  set whichwrap-=h
+
+  let expected =<< trim END
+    áx
+  END
+  call assert_equal(expected, getline(1, '$'))
+
+  bwipe!
+endfunc
+
+func Test_substitute()
+  call assert_equal('a１a２a３a', substitute('１２３', '\zs', 'a', 'g'))
+endfunc
+
+" vim: shiftwidth=2 sts=2 expandtab
