code: private function inside(array &$chars, $delim, $type)
      {
          $position = key($chars);
          $current = next($chars);
          $buffer = '';
  
          while ($current !== $delim) {
              if ($current === '\\') {
                  $buffer .= '\\';
                  $current = next($chars);
              }
              if ($current === false) {
                  // Unclosed delimiter
                  return [
                      'type'  => self::T_UNKNOWN,
                      'value' => $buffer,
                      'pos'   => $position
                  ];
              }
              $buffer .= $current;
              $current = next($chars);
          }
  
          next($chars);
  
          return ['type' => $type, 'value' => $buffer, 'pos' => $position];
      }
docs: Returns a token the is the result of consuming inside of delimiter
  characters. Escaped delimiters will be adjusted before returning a
  value. If the token is not closed, "unknown" is returned.
  
  @param array  $chars Array of characters by reference.
  @param string $delim The delimiter character.
  @param string $type  Token type.
  
  @return array Returns the consumed token.