BasicString

BasicString : 
    '0' | '1' | 'L' | 'H' | 'null'
|   AngleBracketString
|   BraceExpr
|   OptionalString	/* not supported */
|   TruncatedString

BraceExpr :
    '{'  CSN1String  '}'

TruncatedString:
    '{'  CSN1String  '}'  '//'

OptionalString :
    '['  CSN1String  ']'
        
  1. BasicString covers those strings which are self-contained: the literal bits, 'null', and expressions enclosed in some kind of brackets/parentheses/braces.

  2. The braces in a BraceExpr have no real meaning except to set off part of a string and control operator precedence.

  3. TruncatedString indicates that the string inside the curly braces may be truncated in the encoding. If the string inside the curly braces is a Concatenation, any member of that Concatenation, along with all subsequent members, may be absent. Note that if any member is itself enclosed in curly braces, that member is present or absent as a whole. That is, { <a> <b> { <c> <d> } }// can match ab but not abc.

  4. OptionalString is the syntax for an optional string, but we do not currently support this. We have not encountered any use of this notation in 3GPP technical specifications.