### 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/main/java/org/elasticsearch/xpack/esql/parser/LogicalPlanBuilder.java
"Invalid value for dissect append_separator: expected a string, but was [{}]",
                        item.getValue()
                    );
                }
                appendSeparator = (String) item.getValue();
            }
            Source src = source(ctx);
            try {
                DissectParser parser = new DissectParser(pattern, appendSeparator);
                Set<String> referenceKeys = parser.referenceKeys();
                if (referenceKeys.size() > 0) {
                    throw new ParsingException(
                        src,
                        "Reference keys not supported in dissect patterns: [%{*{}}]",
                        referenceKeys.iterator().next()
                    );
                }
                List<Attribute> keys = parser.outputKeys()
                    .stream()
                    .map(x -> new ReferenceAttribute(src, x, DataTypes.KEYWORD))
                    .map(Attribute.class::cast)
                    .toList();
                return new Dissect(src, p, expression(ctx.primaryExpression()), new Dissect.Parser(pattern, appendSeparator, parser), keys);
            } catch (DissectException e) {
                throw new ParsingException(src, "Invalid pattern for dissect: [{}]", pattern);
            }
        };
    }
    @Override
    public PlanFactory visitMvExpandCommand(EsqlBaseParser.MvExpandCommandContext ctx) {