code: function next_search($characters, $callback = true) {
  		$this->token_start = $this->pos;
  		if (!is_array($characters)) {
  			$characters = array_fill_keys(str_split($characters), true);
  		}
  
  		while(++$this->pos < $this->size) {
  			if (isset($characters[$this->doc[$this->pos]])) {
  				if ($callback && isset($this->char_map[$this->doc[$this->pos]])) {
  					if (is_string($this->char_map[$this->doc[$this->pos]])) {
  						return ($this->token = $this->{$this->char_map[$this->doc[$this->pos]]}());
  					} else {
  						return ($this->token = $this->char_map[$this->doc[$this->pos]]);
  					}
  				} else {
  					return ($this->token = self::TOK_UNKNOWN);
  				}
  			} else {
  				$this->parse_linebreak();
  			}
  		}
  
  		return ($this->token = self::TOK_NULL);
  	}
docs: Finds the next token using stop characters.
  
  Used like: next_search('abc') or next_search(array('a' => true, 'b' => true, 'c' => true));
  @param string|array $characters Characters to search for
  @param bool $callback Should the function check the charmap after finding a character?
  @return int Next token ({@link TOK_NULL} if none)