### 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
List<NamedExpression> groupings = visitGrouping(ctx.grouping());
        aggregates.addAll(groupings);
        return input -> new InlineStats(source(ctx), input, new ArrayList<>(groupings), aggregates);
    }
    @Override
    public PlanFactory visitWhereCommand(EsqlBaseParser.WhereCommandContext ctx) {
        Expression expression = expression(ctx.booleanExpression());
        return input -> new Filter(source(ctx), input, expression);
    }
    @Override
    public List<Alias> visitFields(EsqlBaseParser.FieldsContext ctx) {
        return ctx != null ? visitList(this, ctx.field(), Alias.class) : new ArrayList<>();
    }
    @Override
    public PlanFactory visitLimitCommand(EsqlBaseParser.LimitCommandContext ctx) {
        Source source = source(ctx);
        int limit = Integer.parseInt(ctx.INTEGER_LITERAL().getText());
        return input -> new Limit(source, new Literal(source, limit, DataTypes.INTEGER), input);
    }
    @Override
    public PlanFactory visitSortCommand(EsqlBaseParser.SortCommandContext ctx) {
        List<Order> orders = visitList(this, ctx.orderExpression(), Order.class);
        Source source = source(ctx);
        return input -> new OrderBy(source, input, orders);
    }
    @Override
    public Explain visitExplainCommand(EsqlBaseParser.ExplainCommandContext ctx) {
        return new Explain(source(ctx), plan(ctx.subqueryExpression().query()));
    }
    @Override