function Match(self, shift) {
                    var start = self.__index__,
                        end   = self.__last_index__,
                        text  = self.__text_cache__.slice(start, end);

                    /**
                     * Match#schema -> String
                     *
                     * Prefix (protocol) for matched string.
                     **/
                    this.schema    = self.__schema__.toLowerCase();
                    /**
                     * Match#index -> Number
                     *
                     * First position of matched string.
                     **/
                    this.index     = start + shift;
                    /**
                     * Match#lastIndex -> Number
                     *
                     * Next position after matched string.
                     **/
                    this.lastIndex = end + shift;
                    /**
                     * Match#raw -> String
                     *
                     * Matched string.
                     **/
                    this.raw       = text;
                    /**
                     * Match#text -> String
                     *
                     * Notmalized text of matched string.
                     **/
                    this.text      = text;
                    /**
                     * Match#url -> String
                     *
                     * Normalized url of matched string.
                     **/
                    this.url       = text;
                }
new LinkifyIt(schemas, options)
- schemas (Object): Optional. Additional schemas to validate (prefix/validator)
- options (Object): { fuzzyLink|fuzzyEmail|fuzzyIP: true|false }

Creates new linkifier instance with optional additional schemas.
Can be called without `new` keyword for convenience.

By default understands:

- `http(s)://...` , `ftp://...`, `mailto:...` & `//...` links
- "fuzzy" links and emails (example.com, foo@bar.com).

`schemas` is an object, where each key/value describes protocol/rule:

- __key__ - link prefix (usually, protocol name with `:` at the end, `skype:`
  for example). `linkify-it` makes shure that prefix is not preceeded with
  alphanumeric char and symbols. Only whitespaces and punctuation allowed.
- __value__ - rule to check tail after link prefix
  - _String_ - just alias to existing rule
  - _Object_
    - _validate_ - validator function (should return matched length on success),
      or `RegExp`.
    - _normalize_ - optional function to normalize text & url of matched result
      (for example, for @twitter mentions).

`options`:

- __fuzzyLink__ - recognige URL-s without `http(s):` prefix. Default `true`.
- __fuzzyIP__ - allow IPs in fuzzy links above. Can conflict with some texts
  like version numbers. Default `false`.
- __fuzzyEmail__ - recognize emails without `mailto:` prefix.