regularstring = /((\\\v)|(\\\f)|(\\\a)|(\\\r)|(\\\b)|(\\\t)|(\\\n)|(\\\{)|(\\\})|(\\\~)|(\\\\)|([^~{}\\]))*/ unq_document: unq_string unq_document: substring: regularstring substring: substring regularstring ? concat_strings unq_tag: '{' unq_string '}' ? anon_tag unq_tag: '~' regularstring '{' unq_string '}' ? named_tag unq_tag: '{' '}' ? empty_anon_tag unq_tag: '~' regularstring '{' '}' ? empty_named_tag unq_string: substring ? simple_anon_tag unq_string: unq_tag unq_string: unq_string substring ? concat_ustring_string unq_string: unq_string unq_tag