```
SELECT version();

┌─version()────┐
│ 21.10.1.8002 │
└──────────────┘

WITH lower('\RealVNC\WinVNC4 /v password') as CommandLine
SELECT 
    CommandLine,
    CommandLine LIKE '%\\\\realvnc\\\\winvnc4%password%' as t1,
    CommandLine LIKE '%\\\\realvnc\\\\winvnc4 %password%' as t2,
    CommandLine LIKE '%\\\\realvnc\\\\winvnc4%password' as t3,
    CommandLine LIKE '%\\\\realvnc\\\\winvnc4 %password' as t4,
    CommandLine LIKE '%realvnc%winvnc4%password%' as t5,
    CommandLine LIKE '%\\\\winvnc4%password%' as t6;

┌─CommandLine──────────────────┬─t1─┬─t2─┬─t3─┬─t4─┬─t5─┬─t6─┐
│ \realvnc\winvnc4 /v password │  0 │  1 │  1 │  1 │  1 │  1 │
└──────────────────────────────┴────┴────┴────┴────┴────┴────┘

1 rows in set. Elapsed: 0.001 sec. 
```

All should match.

http://sqlfiddle.com/#!9/73f0c6/2
}
/** 'like' - if true, treat pattern as SQL LIKE or ILIKE; if false - treat pattern as re2 regexp.
  * NOTE: We want to run regexp search for whole columns by one call (as implemented in function 'position')
  *  but for that, regexp engine must support \0 bytes and their interpretation as string boundaries.
  */
template <typename Name, bool like, bool revert = false, bool case_insensitive = false>
struct MatchImpl
{
    static constexpr bool use_default_implementation_for_constants = true;
    static constexpr bool supports_start_pos = false;
    static constexpr auto name = Name::name;
    using ResultType = UInt8;
    using Searcher = std::conditional_t<case_insensitive,
          VolnitskyCaseInsensitiveUTF8,
          VolnitskyUTF8>;
    static void vectorConstant(
        const ColumnString::Chars & data,
        const ColumnString::Offsets & offsets,
        const std::string & pattern,
        const ColumnPtr & start_pos,
        PaddedPODArray<UInt8> & res)
    {
        if (start_pos != nullptr)
            throw Exception(ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT,
                    "Function '{}' doesn't support start_pos argument", name);
        if (offsets.empty())
            return;
        String strstr_pattern;
        
        if (like && likePatternIsStrstr(pattern, strstr_pattern))