Tests for regexp with multi-byte encoding and various magic settings. Test matchstr() with a count and multi-byte chars. See test99 for exactly the same test with re=2. STARTTEST :so mbyte.vim :set nocompatible encoding=utf-8 termencoding=latin1 viminfo+=nviminfo :set re=1 /^1 /a*b\{2}c\+/e x/\Md\*e\{2}f\+/e x:set nomagic /g\*h\{2}i\+/e x/\mj*k\{2}l\+/e x/\vm*n{2}o+/e x/\V^aa$ x:set magic /\v(a)(b)\2\1\1/e x/\V[ab]\(\[xy]\)\1 x:" Now search for multi-byte without composing char /ม x:" Now search for multi-byte with composing char /ม่ x:" find word by change of word class /ち\<カヨ\>は x:" Test \%u, [\u] and friends :" c /\%u20ac x:" d /[\u4f7f\u5929]\+ x:" e /\%U12345678 x:" f /[\U1234abcd\u1234\uabcd] x:" g /\%d21879b x:" j Test backwards search from a multi-byte char /x x?. x:" k :let @w=':%s#comb[i]nations#œ̄ṣ́m̥̄ᾱ̆́#g' :@w :" :" l Test what 7.3.192 fixed /^l :s/ \?/ /g :?^1?,$w! test.out :e! test.out G:put =matchstr(\"אבגד\", \".\", 0, 2) " ב :put =matchstr(\"אבגד\", \"..\", 0, 2) " בג :put =matchstr(\"אבגד\", \".\", 0, 0) " א :put =matchstr(\"אבגד\", \".\", 4, -1) " ג :new :$put =['dog(a', 'cat('] /(/e+ "ayn:bd! :$put ='' G"ap :w! :qa! ENDTEST 1 a aa abb abbccc 2 d dd dee deefff 3 g gg ghh ghhiii 4 j jj jkk jkklll 5 m mm mnn mnnooo 6 x ^aa$ x 7 (a)(b) abbaa 8 axx [ab]xx 9 หม่x อมx a อมx หม่x b ちカヨは c x ¬€x d 天使x e y f z g a啷bb j 0123❤x k combinations l äö üᾱ̆́