================================================================================
triple quoted string
================================================================================

f() -> """
       hello
       there
       """.

--------------------------------------------------------------------------------

(source_file
  (fun_decl
    (function_clause
      (atom)
      (expr_args)
      (clause_body
        (string)))))

================================================================================
triple quoted string, 4 quotes
================================================================================

f() -> """"
       hello
       there
       """".

================================================================================
triple quoted string, 4 quotes, embedded 3 quotes
================================================================================

f() -> """"
       hello
       """
       there
       """".

--------------------------------------------------------------------------------

(source_file
  (fun_decl
    (function_clause
      (atom)
      (expr_args)
      (clause_body
        (string)))))

================================================================================
triple quoted string, 4 quotes, embedded 3 quotes, multiple
================================================================================

f() -> """"
       hello
       """
       there
       """".
g() -> """"
       another one, checking greedy
       """".

--------------------------------------------------------------------------------

(source_file
  (fun_decl
    (function_clause
      (atom)
      (expr_args)
      (clause_body
        (string))))
  (fun_decl
    (function_clause
      (atom)
      (expr_args)
      (clause_body
        (string)))))

================================================================================
triple quoted string, internal sq strings
================================================================================

f() ->
  """
  Line a1a
  Line a2a
  """.

--------------------------------------------------------------------------------

(source_file
  (fun_decl
    (function_clause
      (atom)
      (expr_args)
      (clause_body
        (string)))))

================================================================================
quoted binary no sigil
================================================================================

f() -> <<"ab\"c\"\d"/utf8>>.

--------------------------------------------------------------------------------

(source_file
  (fun_decl
    (function_clause
      (atom)
      (expr_args)
      (clause_body
        (binary
          (bin_element
            (string)
            (bit_type_list
              (atom))))))))

================================================================================
quoted binary default sigil
================================================================================

f() -> ~"ab\"c\"\d".

--------------------------------------------------------------------------------

(source_file
  (fun_decl
    (function_clause
      (atom)
      (expr_args)
      (clause_body
        (string)))))

================================================================================
quoted binary explicit sigil
================================================================================

f() -> ~b"ab\"c\"\d".

--------------------------------------------------------------------------------

(source_file
  (fun_decl
    (function_clause
      (atom)
      (expr_args)
      (clause_body
        (string)))))

================================================================================
quoted binary explicit sigil in tq string
================================================================================

f() -> ~b"""
        ab"c"\d
        """.

--------------------------------------------------------------------------------

(source_file
  (fun_decl
    (function_clause
      (atom)
      (expr_args)
      (clause_body
        (string)))))

================================================================================
quoted binary explicit sigil in tq string, 5 quotes, with 3 inside
================================================================================

f() -> ~b"""""
        ab
        """
        """"".
g() -> """""
       checking for greedy regex match
       """"".

--------------------------------------------------------------------------------

(source_file
  (fun_decl
    (function_clause
      (atom)
      (expr_args)
      (clause_body
        (string))))
  (fun_decl
    (function_clause
      (atom)
      (expr_args)
      (clause_body
        (string)))))

================================================================================
verbatim binary no sigil
================================================================================

f() ->  <<"ab\"c\"\\d"/utf8>>.

--------------------------------------------------------------------------------

(source_file
  (fun_decl
    (function_clause
      (atom)
      (expr_args)
      (clause_body
        (binary
          (bin_element
            (string)
            (bit_type_list
              (atom))))))))

================================================================================
verbatim binary with sigil
================================================================================

f() -> ~B"ab\"c\"\d".

--------------------------------------------------------------------------------

(source_file
  (fun_decl
    (function_clause
      (atom)
      (expr_args)
      (clause_body
        (string)))))

================================================================================
verbatim binary in default sigil tq string
================================================================================

f() -> ~"""
        ab"c"\d
        """.

--------------------------------------------------------------------------------

(source_file
  (fun_decl
    (function_clause
      (atom)
      (expr_args)
      (clause_body
        (string)))))

================================================================================
verbatim binary in verabtim sigil tq string
================================================================================

f() -> ~B"""
        ab"c"\d
        """.

--------------------------------------------------------------------------------

(source_file
  (fun_decl
    (function_clause
      (atom)
      (expr_args)
      (clause_body
        (string)))))

================================================================================
quoted string no sigil
================================================================================

f() -> "ab\"c\"\d".

--------------------------------------------------------------------------------

(source_file
  (fun_decl
    (function_clause
      (atom)
      (expr_args)
      (clause_body
        (string)))))

================================================================================
quoted string with sigil
================================================================================

f() -> ~s"ab\"c\"\d".

--------------------------------------------------------------------------------

(source_file
  (fun_decl
    (function_clause
      (atom)
      (expr_args)
      (clause_body
        (string)))))

================================================================================
quoted string with sigil in tq string
================================================================================

f() -> ~s"""
        ab"c"\d
        """.

--------------------------------------------------------------------------------

(source_file
  (fun_decl
    (function_clause
      (atom)
      (expr_args)
      (clause_body
        (string)))))

================================================================================
verbatim string no sigil
================================================================================

f() -> "ab\"c\"\\d".

--------------------------------------------------------------------------------

(source_file
  (fun_decl
    (function_clause
      (atom)
      (expr_args)
      (clause_body
        (string)))))

================================================================================
verbatim string with sigil
================================================================================

f() -> ~S"ab\"c\"\d".

--------------------------------------------------------------------------------

(source_file
  (fun_decl
    (function_clause
      (atom)
      (expr_args)
      (clause_body
        (string)))))

================================================================================
verbatim string with sigil in tq string
================================================================================

f() -> ~S"""
        ab"c"\d
        """.

--------------------------------------------------------------------------------

(source_file
  (fun_decl
    (function_clause
      (atom)
      (expr_args)
      (clause_body
        (string)))))
