def scan_until(pattern, **options)
      result, prefix = check_until_with_prefix(pattern, **options)
      track_result(prefix, result)
    end
def scan_until(pattern, **options)
      result, prefix = check_until_with_prefix(pattern, **options)
      track_result(prefix, result)
    end
Checks if the given pattern matches any substring starting at any position after the current position.

 If it does, it will advance the current {#position} to the end of the substring and merges any params parsed
 from the substring into {#params}.

 @param (see Mustermann.new)
 @return [Mustermann::StringScanner::ScanResult, nil] the matched substring, nil if it didn't match