# String lexing supports balanced, custom-delimiter bracket strings (Hy)

Investigating Hy surfaced one string form no other target dialect has: **bracket strings**, written `#[[...]]` or `#[DELIM[...]DELIM]` where `DELIM` is an arbitrary user-chosen tag whose matching close is `]DELIM]` — a balanced, customizable delimiter in the spirit of Lua long brackets. We generalize lispexp's string lexer to handle this as an Options-gated feature that emits an ordinary `Str` datum (raw slice retained), rather than assuming fixed `"..."` delimiters. This is the only new lexical mechanism Hy requires; its other reader features — Clojure-style `~`/`~@` unquote, `:` keywords, `[]`/`{}`/`#{}` delimiters, `#_` discard, `#foo` reader macros, `#*`/`#**` unpacking, Python-style number/string prefixes, and commas-not-whitespace — all fit the existing Options design (ADR-0003/0006). Hy's f-string embedded code, dotted attribute access (`foo.bar`), and `#!` shebang are handled by treating them as opaque surface (documented in docs/design.md), consistent with the reader-only, preserve-surface stance.
