diff --git a/regression_test/hexstrOper/ThexstrOper.ttcn b/regression_test/hexstrOper/ThexstrOper.ttcn
index 5fade8a09674e158c320f9d44772b60b3ca33dca..ef54cfb4f13f206ac8c77fe038e77a84d8bcde12 100644
--- a/regression_test/hexstrOper/ThexstrOper.ttcn
+++ b/regression_test/hexstrOper/ThexstrOper.ttcn
@@ -390,6 +390,84 @@ testcase CR_TR00018474() runs on CT {
   if (match('BABBCCDDEE'H, vth1)) { setverdict(pass) } else { setverdict(fail) }
 }
 
+// === String_Element tests ===
+
+type component CT{
+  port HSPort  HS
+  timer T
+}
+
+type port HSPort message {
+  inout hexstring
+} with { extension "internal" }
+
+function f_hs(in hexstring hs) return hexstring {
+  return hs;
+}
+
+testcase tc_hs() runs on CT {
+	var hexstring vl_hs1 := '01'H, vl_hs2;
+	vl_hs2 := f_hs(vl_hs1[0]);
+	if( vl_hs2 == '0'H) {setverdict(pass)} else { setverdict(fail)}
+}
+
+altstep as_hs(in hexstring str) runs on CT {
+  var template hexstring vl_str := ?;
+  var hexstring r;
+  [] HS.receive(vl_str) -> value r { if ( r == str) { setverdict(pass) } }
+  [] T.timeout { setverdict(fail, "timeout")}
+}
+
+testcase tc_altstep_hs() runs on CT {
+	var hexstring vl_str := '01'H;
+	connect(self:HS, self:HS);
+	T.start(1.0);
+	HS.send(vl_str);
+	as_hs(vl_str);
+	T.stop;
+}
+
+testcase tc_altstep_hs_idx() runs on CT {
+	var hexstring vl_str := '01'H
+	connect(self:HS, self:HS);
+	T.start(1.0);
+	HS.send(vl_str[0]);
+	as_hs(vl_str[0]);
+	T.stop;
+}
+
+altstep as_hs_template(in template hexstring str) runs on CT {
+  var template hexstring vl_str := ?;
+  var hexstring r;
+  [] HS.receive(vl_str) -> value r { if ( r == valueof(str)) { setverdict(pass) } }
+  [] T.timeout { setverdict(fail, "timeout")}
+}
+
+testcase tc_altstep_hs_template() runs on CT {
+	var template hexstring  vl_str := '01'H;
+	connect(self:HS, self:HS);
+	T.start(1.0);
+	HS.send(vl_str);
+	as_hs_template(vl_str);
+	T.stop;
+}
+
+testcase tc__value_list_hs() runs on CT {
+	var hexstring vl_cs1 := '01'H, vl_cs2
+	var template hexstring vlt_cs := (vl_cs1[0], vl_cs1[1]);
+	vl_cs2 := '0'H;
+	if( match(vl_cs2,vlt_cs)) {setverdict(pass)} else { setverdict(fail)}
+	vl_cs2 := '1'H;
+	if( match(vl_cs2,vlt_cs)) {setverdict(pass)} else { setverdict(fail)}
+}
+
+testcase tc__match_hs_idx() runs on CT {
+	var hexstring vl_cs1 := '01'H;
+	var template hexstring vlt_cs := ('0'H,'1'H); 
+	if( match(vl_cs1[0],vlt_cs)) {setverdict(pass)} else { setverdict(fail)}
+}
+
+
 control {
   const hexstring cl_1 := '0'H
   var hexstring vl_1;
@@ -409,5 +487,12 @@ control {
   execute(hexstrIsvalue());
   execute(hexstrIsbound());
   execute(CR_TR00018474());
+
+  execute(tc_hs());
+  execute(tc_altstep_hs());
+  execute(tc_altstep_hs_idx());
+  execute(tc_altstep_hs_template());
+  execute(tc__value_list_hs());
+  execute(tc__match_hs_idx());
 }
 }