def METHOD_NAME(rebulk: Rebulk,
                         config: dict,
                         options: dict = None):
    """
    Load patterns defined in given config.
    :param rebulk: Rebulk builder to use.
    :param config: dict containing pattern definition.
    :param options: Additional pattern options to use.
    :type options: Dict[Dict[str, str]] A dict where key is the pattern type (regex, string, functional) and value is
    the default kwargs options to pass.
    :return:
    """
    if options is None:
        options = {}
    for value, raw_entries in config.items():
        entries = raw_entries if isinstance(raw_entries, list) else [raw_entries]
        for entry in entries:
            if isinstance(entry, dict) and "callable" in entry.keys():
                _process_callable_entry(entry.pop("callable"), rebulk, entry)
                continue
            entry_decl = _build_entry_decl(entry, options, value)
            for pattern_type in _pattern_types:
                patterns = entry_decl.get(pattern_type)
                if not patterns:
                    continue
                if not isinstance(patterns, list):
                    patterns = [patterns]
                patterns_entry_decl = dict(entry_decl)
                for pattern_type_to_remove in _pattern_types:
                    patterns_entry_decl.pop(pattern_type_to_remove, None)
                current_pattern_options = dict(options)
                current_pattern_options[None] = patterns_entry_decl
                load_patterns(rebulk, pattern_type, patterns, current_pattern_options)