code: public function initialize(Text $text, array $options = array())
      {
          /** @noinspection PhpUnusedParameterInspection */
          $text->replace('{
              ^[ ]{0,' . $options['tabWidth'] . '}\[(.+)\]:   # id = $1
                [ \t]*
                \n?               # maybe *one* newline
                [ \t]*
              <?(\S+?)>?          # url = $2
                [ \t]*
                \n?               # maybe one newline
                [ \t]*
              (?:
                  (?<=\s)         # lookbehind for whitespace
                  ["\'(]
                  (.+?)           # title = $3
                  ["\')]
                  [ \t]*
              )?  # title is optional
              (?:\n+|\Z)
          }xm', function (Text $whole, Text $id, Text $url, Text $title = null) {
              $id->lower();
              $this->markdown->emit('escape.special_chars', [$url->replace('/(?<!\\\\)_/', '\\\\_')]);
              $this->markdown->getUrlRegistry()->set($id, htmlspecialchars($url, ENT_QUOTES, 'UTF-8', false));
  
              if ($title) {
                  $this->markdown->getTitleRegistry()->set($id, preg_replace('/"/', '&quot;', $title));
              }
  
              return '';
          });
      }
docs: Strips link definitions from text, stores the URLs and titles in hash references.
  
  @param Text  $text
  @param array $options