> For the complete documentation index, see [llms.txt](https://docs.internetobject.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.internetobject.org/structure-and-syntax/values/string/open-strings.md).

# Open Strings

An **open string** is the simplest string form: a sequence of Unicode code points with no enclosing quotes. Open strings suit simple, unstructured text that does not begin or end with whitespace and does not require escaping of special or structural characters.

Open strings are scalar values. They preserve all internal whitespace and Unicode content, but cannot start or end with whitespace.

## Syntax

An open string begins with any non-whitespace code point and ends at the first whitespace or structural character, or at the end of the document.

```ebnf
openString    = nonWhitespace (codepoint)*
nonWhitespace = any Unicode code point except whitespace
codepoint     = any Unicode code point except a structural character or document end
```

## Structural characters

| Symbol             | Name                 | Unicode  | Description                                   |
| ------------------ | -------------------- | -------- | --------------------------------------------- |
| (space, tab, etc.) | Whitespace           | Multiple | Terminates the string; cannot start or end it |
| `:`                | Colon                | `U+003A` | Structural character (terminates the string)  |
| `,`                | Comma                | `U+002C` | Structural character (terminates the string)  |
| `{`                | Open curly bracket   | `U+007B` | Structural character (terminates the string)  |
| `}`                | Close curly bracket  | `U+007D` | Structural character (terminates the string)  |
| `[`                | Open square bracket  | `U+005B` | Structural character (terminates the string)  |
| `]`                | Close square bracket | `U+005D` | Structural character (terminates the string)  |
| `"`                | Double quote         | `U+0022` | Allowed; does not terminate or need escaping  |
| `'`                | Single quote         | `U+0027` | Allowed; does not terminate or need escaping  |

## Valid forms

Examples of valid open strings:

```ruby
John Doe
Peter D'mello
जॉन डो
Wow Great
😃
```

Multiple open strings in an object:

```ruby
जॉन डो, Wow Great, 😃
```

A multiline open string (no escaping required):

```ruby
Lorem ipsum dolor sit amet consetetur sadipscing elitr sed
diam nonumy eirmod.

Tempor invidunt ut labore et dolore magna aliquyam erat
sed diam voluptua
```

## Optional behaviors

* **Whitespace** — an open string cannot start or end with whitespace, but preserves all internal whitespace.
* **No escaping** — character escaping is not processed; quotes and other characters appear as-is.
* **Multiline** — an open string can span multiple lines as long as no structural character interrupts it.

## Comments

Comments are not allowed inside open strings, but may appear outside or between values, per the format's comment rules.

## Invalid forms

Examples of invalid open strings:

```ruby
 John Doe      # ✗ starts with whitespace (use a regular string: " John Doe")
"John Doe"     # ✗ quoted (this is a regular string, not an open string)
```

## Preservation of structure

Internet Object preserves:

* All Unicode code points and internal whitespace as written
* The unquoted, open form of the string

It does **not** interpret or enforce:

* Escaping or encoding
* Leading or trailing whitespace (which is disallowed)
* Application-specific constraints

## See Also

* [Strings](/structure-and-syntax/values/string.md) — the three string forms
* [Regular Strings](/structure-and-syntax/values/string/regular-strings.md) — quoted strings with escaping
* [Raw Strings](/structure-and-syntax/values/string/raw-strings.md) — literal strings without escape processing


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.internetobject.org/structure-and-syntax/values/string/open-strings.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
