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).
LOG_TRACE(log, "Receiving response...");
            auto & response_body_stream = session->receiveResponse(poco_response);
            watch.stop();
            ProfileEvents::increment(select_metric(S3MetricType::Microseconds), watch.elapsedMicroseconds());
            int status_code = static_cast<int>(poco_response.getStatus());
            LOG_DEBUG(log, "Response status: {}, {}", status_code, poco_response.getReason());
            if (poco_response.getStatus() == Poco::Net::HTTPResponse::HTTP_TEMPORARY_REDIRECT)
            {
                auto location = poco_response.get("location");
                remote_host_filter.checkURL(Poco::URI(location));
                uri = location;
                LOG_DEBUG(log, "Redirecting request to new location: {}", location);
                ProfileEvents::increment(select_metric(S3MetricType::Redirects));
                continue;
            }
            response->SetResponseCode(static_cast<Aws::Http::HttpResponseCode>(status_code));
            response->SetContentType(poco_response.getContentType());
            WriteBufferFromOwnString headers_ss;
            for (const auto & [header_name, header_value] : poco_response)
            {
                response->AddHeader(header_name, header_value);
                headers_ss << header_name << ": " << header_value << "; ";
            }
            LOG_DEBUG(log, "Received headers: {}", headers_ss.str());
            if (status_code >= 300)
            {
                String error_message;
                Poco::StreamCopier::copyToString(response_body_stream, error_message);
                if (Aws::Http::IsRetryableHttpResponseCode(response->GetResponseCode()))
                    response->SetClientErrorType(Aws::Client::CoreErrors::NETWORK_CONNECTION);