def find_all_matching_parsers(self, strict: bool, desired_type: Type[Any] = JOKER, required_ext: str = JOKER)-> Tuple[Tuple[List[Parser], List[Parser], List[Parser]],<EOL>List[Parser], List[Parser], List[Parser]]:
<EOL>check_var(strict, var_types=bool, var_name='<STR_LIT:strict>')<EOL>desired_type = get_validated_type(desired_type, '<STR_LIT>', enforce_not_joker=False)<EOL>matching_parsers_generic = []<EOL>matching_parsers_approx = []<EOL>matching_parsers_exact = []<EOL>no_type_match_but_ext_match = []<EOL>no_ext_match_but_type_match = []<EOL>no_match = []<EOL>for p in self._generic_parsers:<EOL><INDENT>match = p.is_able_to_parse(desired_type=desired_type, desired_ext=required_ext, strict=strict)<EOL>if match:<EOL><INDENT>if is_any_type(desired_type):<EOL><INDENT>matching_parsers_exact.append(p)<EOL><DEDENT>else:<EOL><INDENT>matching_parsers_generic.append(p)<EOL><DEDENT><DEDENT>else:<EOL><INDENT>if p.is_able_to_parse(desired_type=desired_type, desired_ext=JOKER, strict=strict):<EOL><INDENT>no_ext_match_but_type_match.append(p)<EOL><DEDENT>else:<EOL><INDENT>pass<EOL><DEDENT><DEDENT><DEDENT>for p in self._specific_parsers:<EOL><INDENT>match, exact_match = p.is_able_to_parse_detailed(desired_type=desired_type,<EOL>desired_ext=required_ext,<EOL>strict=strict)<EOL>if match:<EOL><INDENT>if is_any_type(desired_type):<EOL><INDENT>no_type_match_but_ext_match.append(p)<EOL><DEDENT>else:<EOL><INDENT>if exact_match is None or exact_match:<EOL><INDENT>matching_parsers_exact.append(p)<EOL><DEDENT>else:<EOL><INDENT>matching_parsers_approx.append(p)<EOL><DEDENT><DEDENT><DEDENT>else:<EOL><INDENT>if p.is_able_to_parse(desired_type=JOKER, desired_ext=required_ext, strict=strict):<EOL><INDENT>no_type_match_but_ext_match.append(p)<EOL><DEDENT>elif p.is_able_to_parse(desired_type=desired_type, desired_ext=JOKER, strict=strict):<EOL><INDENT>no_ext_match_but_type_match.append(p)<EOL><DEDENT>else:<EOL><INDENT>no_match.append(p)<EOL><DEDENT><DEDENT><DEDENT>return (matching_parsers_generic, matching_parsers_approx, matching_parsers_exact),no_type_match_but_ext_match, no_ext_match_but_type_match, no_match<EOL>
Implementation of the parent method by lookin into the registry to find the most appropriate parsers to use in
order

:param strict:
:param desired_type: the desired type, or 'JOKER' for a wildcard
:param required_ext:
:return: match=(matching_parsers_generic, matching_parsers_approx, matching_parsers_exact),
         no_type_match_but_ext_match, no_ext_match_but_type_match, no_match