**Describe the issue**

```
SELECT
    extract(log, '\\*   Trying ([0-9a-z\\.\\:\\[\\]]+):\\d+\\.\\.\\.') AS resolved_address,
    toIPv4(resolved_address) AS ipv4
FROM minicrawl
LIMIT 10

┌─resolved_address─┬───────────ipv4─┐
│ 89.46.106.77     │   89.46.106.77 │
│ 13.33.243.83     │   13.33.243.83 │
│ 93.95.100.90     │   93.95.100.90 │
│ 23.227.38.32     │   23.227.38.32 │
│ 203.113.174.46   │ 203.113.174.46 │
│ 13.70.20.161     │   13.70.20.161 │
│ 60.199.172.227   │ 60.199.172.227 │
│                  │        0.0.0.0 │
│                  │        0.0.0.0 │
│ 82.149.228.245   │ 82.149.228.245 │
└──────────────────┴────────────────┘
```
{
    static_assert(IsNumber<T>);
public:
    static constexpr bool is_parametric = false;
    using FieldType = T;
    static constexpr auto type_id = TypeId<T>::value;
    static constexpr auto family_name = TypeName<T>::get();
    using ColumnType = ColumnVector<T>;
    const char * getFamilyName() const override { return family_name; }
    TypeIndex getTypeId() const override { return type_id; }
    void serializeText(const IColumn & column, size_t row_num, WriteBuffer & ostr, const FormatSettings &) const override;
    void deserializeText(IColumn & column, ReadBuffer & istr, const FormatSettings & settings) const override;
    void serializeTextJSON(const IColumn & column, size_t row_num, WriteBuffer & ostr, const FormatSettings & settings) const override;
    void deserializeTextJSON(IColumn & column, ReadBuffer & istr, const FormatSettings &) const override;
    void deserializeTextCSV(IColumn & column, ReadBuffer & istr, const FormatSettings & settings) const override;
    Field getDefault() const override;
    
    void serializeBinary(const Field & field, WriteBuffer & ostr) const override;
    void deserializeBinary(Field & field, ReadBuffer & istr) const override;
    void serializeBinary(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override;
    void deserializeBinary(IColumn & column, ReadBuffer & istr) const override;
    void serializeBinaryBulk(const IColumn & column, WriteBuffer & ostr, size_t offset, size_t limit) const override;
    void deserializeBinaryBulk(IColumn & column, ReadBuffer & istr, size_t limit, double avg_value_size_hint) const override;
    void serializeProtobuf(const IColumn & column, size_t row_num, ProtobufWriter & protobuf, size_t & value_index) const override;
    void deserializeProtobuf(IColumn & column, ProtobufReader & protobuf, bool allow_add_row, bool & row_added) const override;
    MutableColumnPtr createColumn() const override;
    bool isParametric() const override { return false; }