+=== String
+
+A _string_ represents a variable number of bytes encoding a string which
+is the result of evaluating a {py3} expression using the UTF-8, UTF-16,
+UTF-32, or Latin-1 to Latin-10 encoding.
+
+A string has two possible forms:
+
+Encoding prefix form:: {empty}
++
+. An encoding amongst:
++
+--
+[horizontal]
+`s:u8`::
+`u8`::
+ UTF-8.
+
+`s:u16be`::
+`u16be`::
+ UTF-16BE.
+
+`s:u16le`::
+`u16le`::
+ UTF-16LE.
+
+`s:u32be`::
+`u32be`::
+ UTF-32BE.
+
+`s:u32le`::
+`u32le`::
+ UTF-32LE.
+
+`s:latin1`::
+ ISO/IEC 8859-1.
+
+`s:latin2`::
+ ISO/IEC 8859-2.
+
+`s:latin3`::
+ ISO/IEC 8859-3.
+
+`s:latin4`::
+ ISO/IEC 8859-4.
+
+`s:latin5`::
+ ISO/IEC 8859-9.
+
+`s:latin6`::
+ ISO/IEC 8859-10.
+
+`s:latin7`::
+ ISO/IEC 8859-13.
+
+`s:latin8`::
+ ISO/IEC 8859-14.
+
+`s:latin9`::
+ ISO/IEC 8859-15.
+
+`s:latin10`::
+ ISO/IEC 8859-16.
+--
+
+. The ``pass:[{]`` prefix.
+
+. A valid {py3} expression of which the evaluation result type
+ is `bool`, `int`, `float`, or `str` (the first three automatically
+ converted to `str`).
++
+For a string at some source location{nbsp}__**L**__, this expression may
+contain:
++
+--
+* The name of any <<label,label>> defined before{nbsp}__**L**__
+ which isn't within a nested group.
+* The name of any <<variable-assignment,variable>> known
+ at{nbsp}__**L**__.
+--
++
+The value of the special name `ICITTE` (`int` type) in this expression
+is the <<cur-offset,current offset>> (before encoding the string).
+
+. The `}` suffix.
+
+Encoding suffix form:: {empty}
++
+. The ``pass:[{]`` prefix.
+
+. A valid {py3} expression of which the evaluation result type
+ is `bool`, `int`, `float`, or `str` (the first three automatically
+ converted to `str`).
++
+For a string at some source location{nbsp}__**L**__, this expression may
+contain:
++
+--
+* The name of any <<label,label>> defined before{nbsp}__**L**__
+ which isn't within a nested group.
+* The name of any <<variable-assignment,variable>> known
+ at{nbsp}__**L**__.
+--
++
+The value of the special name `ICITTE` (`int` type) in this expression
+is the <<cur-offset,current offset>> (before encoding the string).
+
+. The `:` character.
+
+. A string encoding amongst:
++
+--
+[horizontal]
+`s:u8`::
+ UTF-8.
+
+`s:u16be`::
+ UTF-16BE.
+
+`s:u16le`::
+ UTF-16LE.
+
+`s:u32be`::
+ UTF-32BE.
+
+`s:u32le`::
+ UTF-32LE.
+
+`s:latin1`::
+ ISO/IEC 8859-1.
+
+`s:latin2`::
+ ISO/IEC 8859-2.
+
+`s:latin3`::
+ ISO/IEC 8859-3.
+
+`s:latin4`::
+ ISO/IEC 8859-4.
+
+`s:latin5`::
+ ISO/IEC 8859-9.
+
+`s:latin6`::
+ ISO/IEC 8859-10.
+
+`s:latin7`::
+ ISO/IEC 8859-13.
+
+`s:latin8`::
+ ISO/IEC 8859-14.
+
+`s:latin9`::
+ ISO/IEC 8859-15.
+
+`s:latin10`::
+ ISO/IEC 8859-16.
+--
+
+. The `}` suffix.
+
+====
+Input:
+
+----
+{iter = 1}
+
+!repeat 10
+ {iter : s:u8} " "
+ {iter = iter + 1}
+!end
+----
+
+Output:
+
+----
+31 20 32 20 33 20 34 20 35 20 36 20 37 20 38 20 ┆ 1 2 3 4 5 6 7 8
+39 20 31 30 20 ┆ 9 10
+----
+====
+
+====
+Input:
+
+----
+{meow = 'salut jérémie'}
+{meow.upper() : s:latin1}
+----
+
+Output:
+
+----
+53 41 4c 55 54 20 4a c9 52 c9 4d 49 45 ┆ SALUT J•R•MIE
+----
+====
+