diff --git a/libwccl/parser/grammar.g b/libwccl/parser/grammar.g
index 5d2e454bdedaaa79ba1266b2c4910c324b4a193c..9520eeea569b579bb4dd1e6e37bd850d2b0780ec 100644
--- a/libwccl/parser/grammar.g
+++ b/libwccl/parser/grammar.g
@@ -205,15 +205,8 @@ sym_set_elem
 			throw(ParserException(e.info()));
 		}
 	}
-	| G_MARK s2: SYMBOL G_MARK {
-		try {
-			t_set->insert_symbol(tagset, token_ref_to_std_string(s2));
-		}
-		catch(Corpus2::TagParseError &e) {
-			throw(ParserException(e.info()));
-		}
-	}
 ;
+
 // sym set literal
 // {} {sym_set_elem} {sym_set_elem, ..., sym_set_elem}
 // Returns boost::shared_ptr<Wccl::TSet>
@@ -829,7 +822,7 @@ lpred_regex
 	boost::shared_ptr<Wccl::Function<Wccl::StrSet> > expr;
 }
 	: "regex" LPAREN expr = string_operators [tagset, vars] COMMA reg: STRING RPAREN {
-		op.reset(new Wccl::Regex(expr, token_ref_to_ustring(reg)));
+		op.reset(new Wccl::Regex(expr, str_token_ref_to_ustring(reg)));
 	}
 ;
 
@@ -940,14 +933,6 @@ options {
 	: '!'
 ;
 
-G_MARK
-options {
-	paraphrase = "Gravis mark";
-	testLiterals = true;
-}
-	: '`'
-;
-
 STR_PREFIX
 options {
 	paraphrase = "String prefix";
@@ -1049,6 +1034,7 @@ options {
 	testLiterals = true; 
 }
 	: ('a'..'z' | 'A'..'Z' | '_') ('a'..'z' | 'A'..'Z' | '_' | '0'..'9')*
+	| '`' ('a'..'z' | 'A'..'Z' | '_') ('a'..'z' | 'A'..'Z' | '_' | '0'..'9')* '`'
 ;
 
 WS