### Elasticsearch Version

main @ 1266718e1cdef07a8c7cd1a463707825fabf7277

### Installed Plugins

_No response_

### Java Version

openjdk 17.0.8 2023-07-18

### OS Version

Ubuntu 23.;04

### Problem Description

`DISSECT`'s option `append_separator` is not case insensitive in contrast to all other ESQL keywords.

### Steps to Reproduce

This query works:
```
POST _query?format=txt
{
  "query": """
ROW a = "john jacob jingleheimer schmidt"
| DISSECT a "%{+name} %{+name} %{+name} %{+name}" append_separator="---"
  """
}
```
The identical query with upper cased `APPEND_SEPARATOR` does not:
```
POST _query?format=txt
{
  "query": """
ROW a = "john jacob jingleheimer schmidt"
| DISSECT a "%{+name} %{+name} %{+name} %{+name}" APPEND_SEPARATOR="---"
  """
}
```
It fails with `Invalid option for dissect: [APPEND_SEPARATOR]`.

### Logs (if relevant)

_No response_
x-pack/plugin/esql/src/test/java/org/elasticsearch/xpack/esql/parser/StatementParserTests.java
}
    public void testRowCommandMultivalueHugeIntAndNormalInt() {
        assertEquals(
            new Row(EMPTY, List.of(new Alias(EMPTY, "c", literalDoubles(18446744073709551616., 1.0)))),
            statement("row c = [18446744073709551616, 1]")
        );
        assertEquals(
            new Row(EMPTY, List.of(new Alias(EMPTY, "c", literalUnsignedLongs("9223372036854775808", "1")))),
            statement("row c = [9223372036854775808, 1]")
        );
    }
    public void testRowCommandMultivalueDouble() {
        assertEquals(new Row(EMPTY, List.of(new Alias(EMPTY, "c", literalDoubles(1.0, 2.0, -3.4)))), statement("row c = [1.0, 2.0, -3.4]"));
    }
    public void testRowCommandBoolean() {
        assertEquals(new Row(EMPTY, List.of(new Alias(EMPTY, "c", literalBoolean(false)))), statement("row c = false"));
    }
    public void testRowCommandMultivalueBoolean() {
        assertEquals(new Row(EMPTY, List.of(new Alias(EMPTY, "c", literalBooleans(false, true)))), statement("row c = [false, true]"));
    }
    public void testRowCommandString() {
        assertEquals(new Row(EMPTY, List.of(new Alias(EMPTY, "c", literalString("chicken")))), statement("row c = \"chicken\""));
    }
    public void testRowCommandMultivalueString() {
        assertEquals(new Row(EMPTY, List.of(new Alias(EMPTY, "c", literalStrings("cat", "dog")))), statement("row c = [\"cat\", \"dog\"]"));
    }
    public void testRowCommandWithEscapedFieldName() {
        assertEquals(
            new Row(
                EMPTY,