diff --git a/test/e2e/pig/tests/cmdline.conf b/test/e2e/pig/tests/cmdline.conf
index 1459373..72769fa 100644
--- a/test/e2e/pig/tests/cmdline.conf
+++ b/test/e2e/pig/tests/cmdline.conf
@@ -44,7 +44,7 @@
 			'pig' => q\ 
 A= load ':INPATH:/singlefile/studenttab10k' using PigStorage() as (name, age, gpa);
 describe A;\,
-                        'expected_out_regex' => "A: {name: bytearray,age: bytearray,gpa: bytearray}",
+                        'expected_out_regex' => "A: \{name: bytearray,age: bytearray,gpa: bytearray}",
 			},
                         #JIRA[PIG-19], Commented out until fixed.
 #			{
@@ -52,7 +52,7 @@
 #			'pig' => q\ 
 #A=load ':INPATH:/singlefile/studenttab10k' using PigStorage() as (name, age, gpa);
 #describe A;\,
-#                        'expected_out_regex' => "A: {name: bytearray,age: bytearray,gpa: bytearray}",
+#                        'expected_out_regex' => "A: \{name: bytearray,age: bytearray,gpa: bytearray}",
 #			},
                         #JIRA[PIG-373]
 			{
@@ -60,7 +60,7 @@
 			'pig' => q\
 A= load ':INPATH:/singlefile/studenttab10k' using PigStorage() as (name:chararray, age:int, gpa:double);
 describe A;\,
-                        'expected_out_regex' => "A: {name: chararray,age: int,gpa: double}",
+                        'expected_out_regex' => "A: \{name: chararray,age: int,gpa: double}",
 			},
 #********************************************************
 #QUESTION: S/B SQL VERIFIER for DUMP statement?
@@ -85,7 +85,7 @@
 			'pig' => q\ 
 A = load ':INPATH:/singlefile/studenttabcomplex10k' using PigStorage() as (m:map[],x,y);
 describe A;\,
-                        'expected_out_regex' =>"A: {m: map\\[\\],x: bytearray,y: bytearray}",
+                        'expected_out_regex' =>"A: \{m: map\\[\\],x: bytearray,y: bytearray}",
 			},
 
 			#JIRA[PIG-373]
@@ -100,7 +100,7 @@
                         #Expect
                         # A : { m:map, x:bytearray, y:bytearray } 
                         # B : { m :map } 
-                         'expected_out_regex' => "A: {m: map\\[\\],x: bytearray,y: bytearray}\nB: {m: map\\[\\]}",
+                         'expected_out_regex' => "A: \{m: map\\[\\],x: bytearray,y: bytearray}\nB: \{m: map\\[\\]}",
 			},
 			#JIRA[PIG-373]
                         #JIRA[PIG-405]
@@ -114,7 +114,7 @@
                         #Expect
                         # A : { m:map, x:bytearray, y:bytearray } 
                         # B : { m :map } 
-                         'expected_out_regex' => "A: {m: map\\[\\],x: bytearray,y: bytearray}\nB: {m: map\\[\\]}",
+                         'expected_out_regex' => "A: \{m: map\\[\\],x: bytearray,y: bytearray}\nB: \{m: map\\[\\]}",
 			},
 			#JIRA[PIG-373]
                         #JIRA[PIG-405]
@@ -128,13 +128,13 @@
                         #Expect
                         # A : { m:map, x:bytearray, y:bytearray } 
                         # B : { m :map } 
-                         'expected_out_regex' => "B: {m: map\\[\\]}\nA: {m: map\\[\\],x: bytearray,y: bytearray}",
+                         'expected_out_regex' => "B: \{m: map\\[\\]}\nA: \{m: map\\[\\],x: bytearray,y: bytearray}",
 			},
                         {
 			'num' => 14,
 			'pig' => q\A = load ':INPATH:/singlefile/allscalar10k' using PigStorage() as (name:chararray, age:int, gpa:double, instate:boolean);
 describe A;\,
-                        'expected_out_regex' => "A: {name: chararray,age: int,gpa: double,instate: boolean}",
+                        'expected_out_regex' => "A: \{name: chararray,age: int,gpa: double,instate: boolean}",
 			},
 
                         #JIRA[PIG-379]
@@ -150,12 +150,12 @@
 D= group C by name;
 describe D;\,
                         # EXPECT
-                        # A: {name: chararray,age: integer,gpa: double}
-                        # B: {name: chararray,age: integer}
-                        # C: {name: chararray,age: integer}
-                        # D: {group: chararray C: {name: chararray,age: integer}}
+                        # A: \{name: chararray,age: integer,gpa: double}
+                        # B: \{name: chararray,age: integer}
+                        # C: \{name: chararray,age: integer}
+                        # D: \{group: chararray C: \{name: chararray,age: integer}}
                         'expected_out_regex' => 
-"A: {name: chararray,age: int,gpa: float}\nB: {name: chararray,age: int}\nC: {name: chararray,age: int}\nD: {group: chararray,C: {\\(name: chararray,age: int\\)}}",
+"A: \{name: chararray,age: int,gpa: float}\nB: \{name: chararray,age: int}\nC: \{name: chararray,age: int}\nD: \{group: chararray,C: \{\\(name: chararray,age: int\\)}}",
 
 			},
 			{
@@ -170,12 +170,12 @@
 describe C;
 describe D;\,
                         # EXPECT
-                        # A: {name: chararray,age: integer,gpa: double}
-                        # B: {name: chararray,age: integer}
-                        # C: {name: chararray,age: integer}
-                        # D: {group: chararray C: {name: chararray,age: integer}}
+                        # A: \{name: chararray,age: integer,gpa: double}
+                        # B: \{name: chararray,age: integer}
+                        # C: \{name: chararray,age: integer}
+                        # D: \{group: chararray C: \{name: chararray,age: integer}}
                         'expected_out_regex' => 
-"A: {name: chararray,age: int,gpa: float}\nB: {name: chararray,age: int}\nC: {name: chararray,age: int}\nD: {group: chararray,C: {\\(name: chararray,age: int\\)}}\n",
+"A: \{name: chararray,age: int,gpa: float}\nB: \{name: chararray,age: int}\nC: \{name: chararray,age: int}\nD: \{group: chararray,C: \{\\(name: chararray,age: int\\)}}\n",
 
 			},
 			{
@@ -190,12 +190,12 @@
 describe B;
 describe A;\,
                         # EXPECT
-                        # A: {name: chararray,age: integer,gpa: double}
-                        # B: {name: chararray,age: integer}
-                        # C: {name: chararray,age: integer}
-                        # D: {group: chararray C: {name: chararray,age: integer}}
+                        # A: \{name: chararray,age: integer,gpa: double}
+                        # B: \{name: chararray,age: integer}
+                        # C: \{name: chararray,age: integer}
+                        # D: \{group: chararray C: \{name: chararray,age: integer}}
                         'expected_out_regex' => 
-"D: {group: chararray,C: {\\(name: chararray,age: int\\)}}\nC: {name: chararray,age: int}\nB: {name: chararray,age: int}\nA: {name: chararray,age: int,gpa: float}",
+"D: \{group: chararray,C: \{\\(name: chararray,age: int\\)}}\nC: \{name: chararray,age: int}\nB: \{name: chararray,age: int}\nA: \{name: chararray,age: int,gpa: float}",
 
 			},
 			{
@@ -211,10 +211,10 @@
 describe B;
 describe A;\,
                         # EXPECT
-                        # A: {name: chararray,age: integer,gpa: double}
-                        # B: {name: chararray,age: integer}
-                        # C: {name: chararray,age: integer}
-                        # D: {group: chararray C: {name: chararray,age: integer}}
+                        # A: \{name: chararray,age: integer,gpa: double}
+                        # B: \{name: chararray,age: integer}
+                        # C: \{name: chararray,age: integer}
+                        # D: \{group: chararray C: \{name: chararray,age: integer}}
                         'expected_err_regex' => "ERROR 1003: Unable to find an operator for alias X" 
 
 			},
@@ -227,8 +227,8 @@
 D = FOREACH C GENERATE group, flatten((not IsEmpty(A) ? A : (bag{tuple(chararray, int, float)}){(null, null, null)})), flatten((not IsEmpty(B) ? B : (bag{tuple(chararray, int, chararray, float)}){(null,null,null, null)}));
 describe D;\,
                         # EXPECT
-                        # D: {group: chararray,A::name: chararray,A::age: int,A::gpa: float,B::name: chararray,B::age: int,B::registration: chararray,B::contributions: float}
-                        'expected_out_regex' => "D: {group: chararray,A::name: chararray,A::age: int,A::gpa: float,B::name: chararray,B::age: int,B::registration: chararray,B::contributions: float}" 
+                        # D: \{group: chararray,A::name: chararray,A::age: int,A::gpa: float,B::name: chararray,B::age: int,B::registration: chararray,B::contributions: float}
+                        'expected_out_regex' => "D: \{group: chararray,A::name: chararray,A::age: int,A::gpa: float,B::name: chararray,B::age: int,B::registration: chararray,B::contributions: float}" 
 
 			}
 		],
@@ -330,7 +330,7 @@
 C = foreach B { D = distinct A.age; generate COUNT(D), group;}
 describe C::D;
 \,
-                          ,'expected_out_regex' => "D: {age: bytearray}"
+                          ,'expected_out_regex' => "D: \{age: bytearray}"
 
                       },{
 # 2 Test that a nested foreach gives instant feedback: as part of execution: when we run this foreach statement, we will dump the schema for the nested alias 	 	 
@@ -342,7 +342,7 @@
 C = foreach B { D = distinct A.age; E= filter D by age > 1000; generate COUNT(E), group;}
 describe C;
 \,
-                          ,'expected_out_regex' => "C: {long,group: bytearray}"
+                          ,'expected_out_regex' => "C: \{long,group: bytearray}"
 
 
                       },{
@@ -358,7 +358,7 @@
 C = foreach B { D = distinct A.$1; generate COUNT(D), group;}
 describe C::D;
 \,
-                          ,'expected_out_regex' => "D: {age: bytearray}"
+                          ,'expected_out_regex' => "D: \{age: bytearray}"
 
 
                       },
diff --git a/test/e2e/pig/tests/macro.conf b/test/e2e/pig/tests/macro.conf
index e73bdec..bbd6656 100644
--- a/test/e2e/pig/tests/macro.conf
+++ b/test/e2e/pig/tests/macro.conf
@@ -309,7 +309,7 @@
                      b = test(a);
                      describe b;\,
           'rc' => 0,
-          'expected_out_regex'=> "b: {name: chararray,age: int,gpa: double}"
+          'expected_out_regex'=> "b: \{name: chararray,age: int,gpa: double}"
         },
         {
           # macro that does change the schema
@@ -322,7 +322,7 @@
                      b = test(a);
                      describe b;\,
           'rc' => 0,
-          'expected_out_regex'=> "b: {name: chararray}"
+          'expected_out_regex'=> "b: \{name: chararray}"
         }
       ]
     },
diff --git a/test/e2e/pig/tests/nightly.conf b/test/e2e/pig/tests/nightly.conf
index 4eb3ae1..2c654dc 100644
--- a/test/e2e/pig/tests/nightly.conf
+++ b/test/e2e/pig/tests/nightly.conf
@@ -2445,7 +2445,7 @@
 A = load 'sample' as (line:chararray);
 B = foreach A generate flatten(STRSPLIT(line)) as (i0, i1, i2);
 describe B;\,
-                        'expected_out_regex'  => 'B: {i0: bytearray,i1: bytearray,i2: bytearray}',
+                        'expected_out_regex'  => 'B: \{i0: bytearray,i1: bytearray,i2: bytearray}',
 			},
 		],
 		},
@@ -4588,14 +4588,14 @@
 describe T5;
 describe T6;
 ?
-                         ,'expected_out_regex'  => 'B1: {{int}}'
-                         ,'expected_out_regex'  => 'B3: {{int}}'
-                         ,'expected_out_regex'  => 'T1: {org.apache.pig.builtin.totuple_id_.*: (intnum1000: int,id: int,intnum5: int)}'
-                         ,'expected_out_regex'  => 'T2: {org.apache.pig.builtin.totuple_id_.*: (intnum1000: int,id: int,intnum5: int)}'
-                         ,'expected_out_regex'  => 'T3: {org.apache.pig.builtin.totuple_intnum1000.*: (intnum1000: int,intnum1000: int,intnum1000: int)}'
-                         ,'expected_out_regex'  => 'T4: {{int},org.apache.pig.builtin.totuple_intnum100.*: (intnum100: int,intnum: int,longnum: long),floatnum: float,doublenum: double}'
-                         ,'expected_out_regex'  => 'T5: {intnum1000: int,id: int,org.apache.pig.builtin.totuple_intnum100.*: (intnum5: int,intnum100: int,intnum: int).*{NULL}.*doublenum: double}'
-                         ,'expected_out_regex'  => "T6: {intnum1000: int,org.apache.pig.builtin.totuple_intnum1000.*: \\(intnum1000: int,intnum1000: int,intnum1000: int\\),{\\(int\\)},duplicate: int}"
+                         ,'expected_out_regex'  => 'B1: \{\{int}}'
+                         ,'expected_out_regex'  => 'B3: \{\{int}}'
+                         ,'expected_out_regex'  => 'T1: \{org.apache.pig.builtin.totuple_id_.*: (intnum1000: int,id: int,intnum5: int)}'
+                         ,'expected_out_regex'  => 'T2: \{org.apache.pig.builtin.totuple_id_.*: (intnum1000: int,id: int,intnum5: int)}'
+                         ,'expected_out_regex'  => 'T3: \{org.apache.pig.builtin.totuple_intnum1000.*: (intnum1000: int,intnum1000: int,intnum1000: int)}'
+                         ,'expected_out_regex'  => 'T4: \{\{int},org.apache.pig.builtin.totuple_intnum100.*: (intnum100: int,intnum: int,longnum: long),floatnum: float,doublenum: double}'
+                         ,'expected_out_regex'  => 'T5: \{intnum1000: int,id: int,org.apache.pig.builtin.totuple_intnum100.*: (intnum5: int,intnum100: int,intnum: int).*{NULL}.*doublenum: double}'
+                         ,'expected_out_regex'  => "T6: \{intnum1000: int,org.apache.pig.builtin.totuple_intnum1000.*: \\(intnum1000: int,intnum1000: int,intnum1000: int\\),\{\\(int\\)},duplicate: int}"
                         }, {
 # TEST : bag of mixed data types
 # TEST : Order 
@@ -4614,11 +4614,11 @@
 describe F;
 describe G;
 ?
-                         ,'expected_out_regex'  => 'C: {{\\(NULL\\)}}'
-                         ,'expected_out_regex'  => 'D: {{\\(int\\)}}'
-                         ,'expected_out_regex'  => 'E: {{\\(float\\)}}'
-                         ,'expected_out_regex'  => 'F: {{\\(long\\)}}'
-                         ,'expected_out_regex'  => 'G: {{\\(double\\)}}'
+                         ,'expected_out_regex'  => 'C: \{\{\\(NULL\\)}}'
+                         ,'expected_out_regex'  => 'D: \{\{\\(int\\)}}'
+                         ,'expected_out_regex'  => 'E: \{\{\\(float\\)}}'
+                         ,'expected_out_regex'  => 'F: \{\{\\(long\\)}}'
+                         ,'expected_out_regex'  => 'G: \{\{\\(double\\)}}'
 
 			}, {
 # TEST : TOBAG/TOTUPLE with simple types
diff --git a/test/e2e/pig/tests/turing_jython.conf b/test/e2e/pig/tests/turing_jython.conf
index 414c1de..6f1f1bc 100644
--- a/test/e2e/pig/tests/turing_jython.conf
+++ b/test/e2e/pig/tests/turing_jython.conf
@@ -508,7 +508,7 @@
 result = P.bind({'in1':input1, 'in2':input2, 'max':maximum, 'out1':output1, 'out2':output2 }).describe('A');
 \
                        ,'rc'=> 0
-                       ,'expected_out_regex' => "A:.*{name:.*bytearray,age:.*bytearray,gpa:.*bytearray}"
+                       ,'expected_out_regex' => "A:.*\{name:.*bytearray,age:.*bytearray,gpa:.*bytearray}"
 	}, {
                 # describe() on an undefined alias 
 		'num' => 4
