Hi, first of all thank you for a great piece of software.

**Describe the bug**

PR  #15646 fixes #10417 by matching the S3 endpoint region using the following regular expression: `s3.<region>.amazonaws`. Attempting to use an S3 compatible storage engine hosted outside of AWS an authentication error due to mismatch with the default region (`us-east-1`).

**Does it reproduce on recent release?**
Reproduces on `ClickHouse server version 21.4.5.46 (official build)`

**How to reproduce?**

The following query fails:

`SELECT * from s3('https://s3.gra.cloud.ovh.net/..., 'key', 'secret', 'csv', '...') LIMIT 10`

**Expected behavior**

One potential solution would be to allow the region to be specified in the S3 disk settings (adding vendor-specific regexp patterns in  `PocoHTTPClientConfiguration::updateSchemeAndRegion` seems unrealistic).
{
        Microseconds,
        Count,
        Errors,
        Throttling,
        Redirects,
        EnumSize,
    };
    auto select_metric = [&request](S3MetricType type)
    {
        const ProfileEvents::Event events_map[][2] = {
            {ProfileEvents::S3ReadMicroseconds, ProfileEvents::S3WriteMicroseconds},
            {ProfileEvents::S3ReadRequestsCount, ProfileEvents::S3WriteRequestsCount},
            {ProfileEvents::S3ReadRequestsErrors, ProfileEvents::S3WriteRequestsErrors},
            {ProfileEvents::S3ReadRequestsThrottling, ProfileEvents::S3WriteRequestsThrottling},
            {ProfileEvents::S3ReadRequestsRedirects, ProfileEvents::S3WriteRequestsRedirects},
        };
        static_assert((sizeof(events_map) / sizeof(events_map[0])) == static_cast<unsigned int>(S3MetricType::EnumSize));
        switch (request.GetMethod())
        {
            case Aws::Http::HttpMethod::HTTP_GET:
            case Aws::Http::HttpMethod::HTTP_HEAD:
                return events_map[static_cast<unsigned int>(type)][0]; 
            case Aws::Http::HttpMethod::HTTP_POST: