### Elasticsearch Version

main @ aa862640e5af74815a0d1d9b9ae3734426ffb459

### Installed Plugins

_No response_

### Java Version

openjdk version "17.0.8" 2023-07-18

### OS Version

Ubuntu 23.04

### Problem Description

May be related to https://github.com/elastic/elasticsearch/issues/101017.

`LIKE` seems not to handle backslashes correctly. Given a field containing Windows-style paths, like `C:\a\b\c`, the following query should succeed:
```
from the_index | where the_field like "C:\\*"
```
but if sent via Kibana, returns an empty result.

### Steps to Reproduce

Via cURL:

Start a local instance of Elasticsearch and create an index with a Windows-style path:
```bash
$ curl -v -u elastic:password 'localhost:9200/my-idx/_doc' -H "Content-Type: application/json" -d '{"a": "C:\\b\\c.exe"}'
```

Now, with a single backslash, the query does not parse:
```bash
$ curl -v -u elastic:password 'localhost:9200/_query' -H "Content-Type: application/json" -d '{"query": "from `my-idx` | where a like \"C:\\*\""}'

{"error":{"root_cause":[{"type":"parsing_exception","reason":"line 1:30: token recognition error at: '\"C:\\*'"}],"type":"parsing_exception","reason":"line 1:30: token recognition error at: '\"C:\\*'","caused_by":{"type":"lexer_no_viable_alt_exception","reason":null}},"status":400}
```

With two backslashes, we obtain an empty result:
```
curl -v -u elastic:password 'localhost:9200/_query' -H "Content-Type: application/json" -d '{"query": "from `my-idx` | where a like \"C:\\\\*\""}' 

{"columns":[{"name":"a","type":"text"},{"name":"a.keyword","type":"keyword"}],"values":[]}%
```
In both cases, no warnings emitted (except the standard "No limit defined...")

### Logs (if relevant)

_No response_
x-pack/plugin/ql/src/main/java/org/elasticsearch/xpack/ql/util/StringUtils.java
char curr = pattern.charAt(i);
            if (escaped == false && (curr == escape) && escape != 0) {
                if (i + 1 == pattern.length()) {
                    throw new QlIllegalArgumentException("Invalid sequence - escape character is not followed by special wildcard char");
                }
                escaped = true;
            } else {
                switch (curr) {
                    case '%' -> wildcard.append(escaped ? SQL_WILDCARD : WILDCARD);
                    case '_' -> wildcard.append(escaped ? "_" : "*");
                    default -> {
                        if (escaped) {
                            throw new QlIllegalArgumentException(
                                "Invalid sequence - escape character is not followed by special wildcard char"
                            );
                        }
                        
                        wildcard.append(curr);
                    }
                }
                escaped = false;
            }
        }
        return wildcard.toString();
    }
    public static String likeToUnescaped(String pattern, char escape) {
        StringBuilder wildcard = new StringBuilder(pattern.length());
        boolean escaped = false;
        for (int i = 0; i < pattern.length(); i++) {
            char curr = pattern.charAt(i);