diff --git a/src/test/regress/expected/euc_cn.out b/src/test/regress/expected/euc_cn.out
new file mode 100644
index 0000000000000000000000000000000000000000..d927b28d205b177dc6c2aca3107c6533d3c3893e
--- /dev/null
+++ b/src/test/regress/expected/euc_cn.out
@@ -0,0 +1,55 @@
+QUERY: drop table 计算机术语;
+ERROR:  Relation 计算机术语 Does Not Exist!
+QUERY: create table 计算机术语(术语 text, 分类号 varchar, 备注1A char(16));
+QUERY: create index 计算机术语index1 on 计算机术语 using btree(术语);
+QUERY: create index 计算机术语index2 on 计算机术语 using btree(分类号);
+QUERY: insert into 计算机术语 values('电脑显示屏','机A01上');
+QUERY: insert into 计算机术语 values('电脑图形','分B01中');
+QUERY: insert into 计算机术语 values('电脑程序员','人Z01下');
+QUERY: vacuum 计算机术语;
+QUERY: select * from 计算机术语;
+术语      |分类号 |备注1a
+----------+-------+------
+电脑显示屏|机A01上|      
+电脑图形  |分B01中|      
+电脑程序员|人Z01下|      
+(3 rows)
+
+QUERY: select * from 计算机术语 where 分类号 = '人Z01下';
+术语      |分类号 |备注1a
+----------+-------+------
+电脑程序员|人Z01下|      
+(1 row)
+
+QUERY: select * from 计算机术语 where 分类号 ~* '人z01下';
+术语      |分类号 |备注1a
+----------+-------+------
+电脑程序员|人Z01下|      
+(1 row)
+
+QUERY: select * from 计算机术语 where 分类号 like '_Z01_';
+术语      |分类号 |备注1a
+----------+-------+------
+电脑程序员|人Z01下|      
+(1 row)
+
+QUERY: select * from 计算机术语 where 分类号 like '_Z%';
+术语      |分类号 |备注1a
+----------+-------+------
+电脑程序员|人Z01下|      
+(1 row)
+
+QUERY: select * from 计算机术语 where 术语 ~ '电脑[显图]';
+术语      |分类号 |备注1a
+----------+-------+------
+电脑显示屏|机A01上|      
+电脑图形  |分B01中|      
+(2 rows)
+
+QUERY: select * from 计算机术语 where 术语 ~* '电脑[显图]';
+术语      |分类号 |备注1a
+----------+-------+------
+电脑显示屏|机A01上|      
+电脑图形  |分B01中|      
+(2 rows)
+
diff --git a/src/test/regress/expected/euc_jp.out b/src/test/regress/expected/euc_jp.out
new file mode 100644
index 0000000000000000000000000000000000000000..c710392738fbe3d72eab23788bfdb365cb154d9c
--- /dev/null
+++ b/src/test/regress/expected/euc_jp.out
@@ -0,0 +1,55 @@
+QUERY: drop table 纷换怠脱胳;
+ERROR:  Relation 纷换怠脱胳 Does Not Exist!
+QUERY: create table 纷换怠脱胳 (脱胳 text, 尸梧コ〖ド varchar, 洒雇1Aだよ char(16));
+QUERY: create index 纷换怠脱胳index1 on 纷换怠脱胳 using btree (脱胳);
+QUERY: create index 纷换怠脱胳index2 on 纷换怠脱胳 using hash (尸梧コ〖ド);
+QUERY: insert into 纷换怠脱胳 values('コンピュ〖タディスプレイ','怠A01惧');
+QUERY: insert into 纷换怠脱胳 values('コンピュ〖タグラフィックス','尸B10面');
+QUERY: insert into 纷换怠脱胳 values('コンピュ〖タプログラマ〖','客Z01布');
+QUERY: vacuum 纷换怠脱胳;
+QUERY: select * from 纷换怠脱胳;
+脱胳                      |尸梧コ〖ド|洒雇1aだよ
+--------------------------+----------+----------
+コンピュ〖タディスプレイ  |怠A01惧   |          
+コンピュ〖タグラフィックス|尸B10面   |          
+コンピュ〖タプログラマ〖  |客Z01布   |          
+(3 rows)
+
+QUERY: select * from 纷换怠脱胳 where 尸梧コ〖ド = '客Z01布';
+脱胳                    |尸梧コ〖ド|洒雇1aだよ
+------------------------+----------+----------
+コンピュ〖タプログラマ〖|客Z01布   |          
+(1 row)
+
+QUERY: select * from 纷换怠脱胳 where 尸梧コ〖ド ~* '客z01布';
+脱胳                    |尸梧コ〖ド|洒雇1aだよ
+------------------------+----------+----------
+コンピュ〖タプログラマ〖|客Z01布   |          
+(1 row)
+
+QUERY: select * from 纷换怠脱胳 where 尸梧コ〖ド like '_Z01_';
+脱胳                    |尸梧コ〖ド|洒雇1aだよ
+------------------------+----------+----------
+コンピュ〖タプログラマ〖|客Z01布   |          
+(1 row)
+
+QUERY: select * from 纷换怠脱胳 where 尸梧コ〖ド like '_Z%';
+脱胳                    |尸梧コ〖ド|洒雇1aだよ
+------------------------+----------+----------
+コンピュ〖タプログラマ〖|客Z01布   |          
+(1 row)
+
+QUERY: select * from 纷换怠脱胳 where 脱胳 ~ 'コンピュ〖タ[デグ]';
+脱胳                      |尸梧コ〖ド|洒雇1aだよ
+--------------------------+----------+----------
+コンピュ〖タディスプレイ  |怠A01惧   |          
+コンピュ〖タグラフィックス|尸B10面   |          
+(2 rows)
+
+QUERY: select * from 纷换怠脱胳 where 脱胳 ~* 'コンピュ〖タ[デグ]';
+脱胳                      |尸梧コ〖ド|洒雇1aだよ
+--------------------------+----------+----------
+コンピュ〖タディスプレイ  |怠A01惧   |          
+コンピュ〖タグラフィックス|尸B10面   |          
+(2 rows)
+
diff --git a/src/test/regress/expected/mule_internal.out b/src/test/regress/expected/mule_internal.out
new file mode 100644
index 0000000000000000000000000000000000000000..c797072e3d9c94151e80bbcd9008fe2136e7f399
--- /dev/null
+++ b/src/test/regress/expected/mule_internal.out
@@ -0,0 +1,85 @@
+QUERY: drop table 挿讙换挼脱捀�;
+ERROR:  Relation 挿讙换挼脱捀� Does Not Exist!
+QUERY: create table 挿讙换挼脱捀� (捦褣胳 text, 捠瑨梧挜硳〖挜� varchar, 捜鲯雇1A挙罀よ char(16));
+QUERY: create index 挿讙换挼脱捀靑ndex1 on 挿讙换挼脱捀� using btree (捦褣胳);
+QUERY: create index 挿讙换挼脱捀靑ndex2 on 挿讙换挼脱捀� using hash (捠瑨梧挜硳〖挜�);
+QUERY: insert into 挿讙换挼脱捀� values('挜硳ン挜話ュ挕紥タ挜菕ィ挜箳プ挜鞉イ','挼01捑�');
+QUERY: insert into 挿讙换挼脱捀� values('挜硳ン挜話ュ挕紥タ挜皰ラ挜諕ィ挜脪ク挜�','捠珺10捗�');
+QUERY: insert into 挿讙换挼脱捀� values('挜硳ン挜話ュ挕紥タ挜讙ロ挜皰ラ挜迴〖','捒蚙01挷�');
+QUERY: insert into 挿讙换挼脱捀� values('懙鐟脑懴詰示懫�','懟鶤01懮�');
+QUERY: insert into 挿讙换挼脱捀� values('懙鐟脑懲紤形','懛諦01懼�');
+QUERY: insert into 挿讙换挼脱捀� values('懙鐟脑懗虘序懺�','懭薢01懴�');
+QUERY: vacuum 挿讙换挼脱捀�;
+QUERY: select * from 挿讙换挼脱捀�;
+捦褣胳                                 |捠瑨梧挜硳〖挜蓔捜鲯雇1a挙罀よ
+---------------------------------------+---------------+--------------
+挜硳ン挜話ュ挕紥タ挜菕ィ挜箳プ挜鞉イ   |挼01捑�      |              
+挜硳ン挜話ュ挕紥タ挜皰ラ挜諕ィ挜脪ク挜箌捠珺10捗�      |              
+挜硳ン挜話ュ挕紥タ挜讙ロ挜皰ラ挜迴〖   |捒蚙01挷�      |              
+懙鐟脑懴詰示懫�                        |懟鶤01懮�      |              
+懙鐟脑懲紤形                           |懛諦01懼�      |              
+懙鐟脑懗虘序懺�                        |懭薢01懴�      |              
+(6 rows)
+
+QUERY: select * from 挿讙换挼脱捀� where 捠瑨梧挜硳〖挜� = '捒蚙01挷�';
+捦褣胳                              |捠瑨梧挜硳〖挜蓔捜鲯雇1a挙罀よ
+------------------------------------+---------------+--------------
+挜硳ン挜話ュ挕紥タ挜讙ロ挜皰ラ挜迴〖|捒蚙01挷�      |              
+(1 row)
+
+QUERY: select * from 挿讙换挼脱捀� where 捠瑨梧挜硳〖挜� ~ 'Z01';
+捦褣胳                              |捠瑨梧挜硳〖挜蓔捜鲯雇1a挙罀よ
+------------------------------------+---------------+--------------
+挜硳ン挜話ュ挕紥タ挜讙ロ挜皰ラ挜迴〖|捒蚙01挷�      |              
+懙鐟脑懗虘序懺�                     |懭薢01懴�      |              
+(2 rows)
+
+QUERY: select * from 挿讙换挼脱捀� where 捠瑨梧挜硳〖挜� ~* 'z01';
+捦褣胳                              |捠瑨梧挜硳〖挜蓔捜鲯雇1a挙罀よ
+------------------------------------+---------------+--------------
+挜硳ン挜話ュ挕紥タ挜讙ロ挜皰ラ挜迴〖|捒蚙01挷�      |              
+懙鐟脑懗虘序懺�                     |懭薢01懴�      |              
+(2 rows)
+
+QUERY: select * from 挿讙换挼脱捀� where 捠瑨梧挜硳〖挜� like '_Z01_';
+捦褣胳                              |捠瑨梧挜硳〖挜蓔捜鲯雇1a挙罀よ
+------------------------------------+---------------+--------------
+挜硳ン挜話ュ挕紥タ挜讙ロ挜皰ラ挜迴〖|捒蚙01挷�      |              
+懙鐟脑懗虘序懺�                     |懭薢01懴�      |              
+(2 rows)
+
+QUERY: select * from 挿讙换挼脱捀� where 捠瑨梧挜硳〖挜� like '_Z%';
+捦褣胳                              |捠瑨梧挜硳〖挜蓔捜鲯雇1a挙罀よ
+------------------------------------+---------------+--------------
+挜硳ン挜話ュ挕紥タ挜讙ロ挜皰ラ挜迴〖|捒蚙01挷�      |              
+懙鐟脑懗虘序懺�                     |懭薢01懴�      |              
+(2 rows)
+
+QUERY: select * from 挿讙换挼脱捀� where 捦褣胳 ~ '挜硳ン挜話ュ挕紥タ[挜菕グ]';
+捦褣胳                                 |捠瑨梧挜硳〖挜蓔捜鲯雇1a挙罀よ
+---------------------------------------+---------------+--------------
+挜硳ン挜話ュ挕紥タ挜菕ィ挜箳プ挜鞉イ   |挼01捑�      |              
+挜硳ン挜話ュ挕紥タ挜皰ラ挜諕ィ挜脪ク挜箌捠珺10捗�      |              
+(2 rows)
+
+QUERY: select * from 挿讙换挼脱捀� where 捦褣胳 ~* '挜硳ン挜話ュ挕紥タ[挜菕グ]';
+捦褣胳                                 |捠瑨梧挜硳〖挜蓔捜鲯雇1a挙罀よ
+---------------------------------------+---------------+--------------
+挜硳ン挜話ュ挕紥タ挜菕ィ挜箳プ挜鞉イ   |挼01捑�      |              
+挜硳ン挜話ュ挕紥タ挜皰ラ挜諕ィ挜脪ク挜箌捠珺10捗�      |              
+(2 rows)
+
+QUERY: select * from 挿讙换挼脱捀� where 捦褣胳 ~ '懙鐟脑[懴詰图]';
+捦褣胳         |捠瑨梧挜硳〖挜蓔捜鲯雇1a挙罀よ
+---------------+---------------+--------------
+懙鐟脑懴詰示懫羭懟鶤01懮�      |              
+懙鐟脑懲紤形   |懛諦01懼�      |              
+(2 rows)
+
+QUERY: select * from 挿讙换挼脱捀� where 捦褣胳 ~* '懙鐟脑[懴詰图]';
+捦褣胳         |捠瑨梧挜硳〖挜蓔捜鲯雇1a挙罀よ
+---------------+---------------+--------------
+懙鐟脑懴詰示懫羭懟鶤01懮�      |              
+懙鐟脑懲紤形   |懛諦01懼�      |              
+(2 rows)
+
diff --git a/src/test/regress/sql/euc_cn.sql b/src/test/regress/sql/euc_cn.sql
new file mode 100644
index 0000000000000000000000000000000000000000..461c0c864f81d07b037d7bf13abf3ea1647ad5b6
--- /dev/null
+++ b/src/test/regress/sql/euc_cn.sql
@@ -0,0 +1,15 @@
+drop table 计算机术语;
+create table 计算机术语(术语 text, 分类号 varchar, 备注1A char(16));
+create index 计算机术语index1 on 计算机术语 using btree(术语);
+create index 计算机术语index2 on 计算机术语 using btree(分类号);
+insert into 计算机术语 values('电脑显示屏','机A01上');
+insert into 计算机术语 values('电脑图形','分B01中');
+insert into 计算机术语 values('电脑程序员','人Z01下');
+vacuum 计算机术语;
+select * from 计算机术语;
+select * from 计算机术语 where 分类号 = '人Z01下';
+select * from 计算机术语 where 分类号 ~* '人z01下';
+select * from 计算机术语 where 分类号 like '_Z01_';
+select * from 计算机术语 where 分类号 like '_Z%';
+select * from 计算机术语 where 术语 ~ '电脑[显图]';
+select * from 计算机术语 where 术语 ~* '电脑[显图]';
diff --git a/src/test/regress/sql/euc_jp.sql b/src/test/regress/sql/euc_jp.sql
new file mode 100644
index 0000000000000000000000000000000000000000..8cba58055d536bdcf867ceaefb79ec6ab811ce82
--- /dev/null
+++ b/src/test/regress/sql/euc_jp.sql
@@ -0,0 +1,15 @@
+drop table 纷换怠脱胳;
+create table 纷换怠脱胳 (脱胳 text, 尸梧コ〖ド varchar, 洒雇1Aだよ char(16));
+create index 纷换怠脱胳index1 on 纷换怠脱胳 using btree (脱胳);
+create index 纷换怠脱胳index2 on 纷换怠脱胳 using hash (尸梧コ〖ド);
+insert into 纷换怠脱胳 values('コンピュ〖タディスプレイ','怠A01惧');
+insert into 纷换怠脱胳 values('コンピュ〖タグラフィックス','尸B10面');
+insert into 纷换怠脱胳 values('コンピュ〖タプログラマ〖','客Z01布');
+vacuum 纷换怠脱胳;
+select * from 纷换怠脱胳;
+select * from 纷换怠脱胳 where 尸梧コ〖ド = '客Z01布';
+select * from 纷换怠脱胳 where 尸梧コ〖ド ~* '客z01布';
+select * from 纷换怠脱胳 where 尸梧コ〖ド like '_Z01_';
+select * from 纷换怠脱胳 where 尸梧コ〖ド like '_Z%';
+select * from 纷换怠脱胳 where 脱胳 ~ 'コンピュ〖タ[デグ]';
+select * from 纷换怠脱胳 where 脱胳 ~* 'コンピュ〖タ[デグ]';
diff --git a/src/test/regress/sql/mule_internal.sql b/src/test/regress/sql/mule_internal.sql
new file mode 100644
index 0000000000000000000000000000000000000000..6d07906ff7868741726c9e0c27f6bc313d88c789
--- /dev/null
+++ b/src/test/regress/sql/mule_internal.sql
@@ -0,0 +1,21 @@
+drop table 挿讙换挼脱捀�;
+create table 挿讙换挼脱捀� (捦褣胳 text, 捠瑨梧挜硳〖挜� varchar, 捜鲯雇1A挙罀よ char(16));
+create index 挿讙换挼脱捀靑ndex1 on 挿讙换挼脱捀� using btree (捦褣胳);
+create index 挿讙换挼脱捀靑ndex2 on 挿讙换挼脱捀� using hash (捠瑨梧挜硳〖挜�);
+insert into 挿讙换挼脱捀� values('挜硳ン挜話ュ挕紥タ挜菕ィ挜箳プ挜鞉イ','挼01捑�');
+insert into 挿讙换挼脱捀� values('挜硳ン挜話ュ挕紥タ挜皰ラ挜諕ィ挜脪ク挜�','捠珺10捗�');
+insert into 挿讙换挼脱捀� values('挜硳ン挜話ュ挕紥タ挜讙ロ挜皰ラ挜迴〖','捒蚙01挷�');
+insert into 挿讙换挼脱捀� values('懙鐟脑懴詰示懫�','懟鶤01懮�');
+insert into 挿讙换挼脱捀� values('懙鐟脑懲紤形','懛諦01懼�');
+insert into 挿讙换挼脱捀� values('懙鐟脑懗虘序懺�','懭薢01懴�');
+vacuum 挿讙换挼脱捀�;
+select * from 挿讙换挼脱捀�;
+select * from 挿讙换挼脱捀� where 捠瑨梧挜硳〖挜� = '捒蚙01挷�';
+select * from 挿讙换挼脱捀� where 捠瑨梧挜硳〖挜� ~ 'Z01';
+select * from 挿讙换挼脱捀� where 捠瑨梧挜硳〖挜� ~* 'z01';
+select * from 挿讙换挼脱捀� where 捠瑨梧挜硳〖挜� like '_Z01_';
+select * from 挿讙换挼脱捀� where 捠瑨梧挜硳〖挜� like '_Z%';
+select * from 挿讙换挼脱捀� where 捦褣胳 ~ '挜硳ン挜話ュ挕紥タ[挜菕グ]';
+select * from 挿讙换挼脱捀� where 捦褣胳 ~* '挜硳ン挜話ュ挕紥タ[挜菕グ]';
+select * from 挿讙换挼脱捀� where 捦褣胳 ~ '懙鐟脑[懴詰图]';
+select * from 挿讙换挼脱捀� where 捦褣胳 ~* '懙鐟脑[懴詰图]';