### 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
} else {
                    hasSeenStar = true;
                }
            }
            projections.add(ne);
        }
        return child -> new Keep(source(ctx), child, projections);
    }
    @Override
    public LogicalPlan visitShowInfo(EsqlBaseParser.ShowInfoContext ctx) {
        return new ShowInfo(source(ctx));
    }
    @Override
    public LogicalPlan visitShowFunctions(EsqlBaseParser.ShowFunctionsContext ctx) {
        return new ShowFunctions(source(ctx));
    }
    @Override
    public PlanFactory visitEnrichCommand(EsqlBaseParser.EnrichCommandContext ctx) {
        return p -> {
            final String policyName = visitSourceIdentifier(ctx.policyName);
            var source = source(ctx);
            NamedExpression matchField = ctx.ON() != null
                ? new UnresolvedAttribute(source(ctx.matchField), visitSourceIdentifier(ctx.matchField))
                : new EmptyAttribute(source);
            if (matchField.name().contains("*")) {
                throw new ParsingException(
                    source(ctx),
                    "Using wildcards (*) in ENRICH WITH projections is not allowed [{}]",
                    matchField.name()
                );