def _check_name(self, node_type, name, node, confidence=interfaces.HIGH):
    "check for a name using the type's regexp"
    non_ascii_match = self._non_ascii_rgx_compiled.match(name)
    if (non_ascii_match is not None):
        self._raise_name_warning(node, node_type, name, confidence, warning='non-ascii-name')

    def _should_exempt_from_invalid_name(node):
        if (node_type == 'variable'):
            inferred = utils.safe_infer(node)
            if isinstance(inferred, astroid.ClassDef):
                return True
        return False
    if utils.is_inside_except(node):
        (clobbering, _) = utils.clobber_in_except(node)
        if clobbering:
            return
    if self._name_allowed_by_regex(name=name):
        return
    if self._name_disallowed_by_regex(name=name):
        self.stats[('badname_' + node_type)] += 1
        self.add_message('disallowed-name', node=node, args=name)
        return
    regexp = self._name_regexps[node_type]
    match = regexp.match(name)
    if _is_multi_naming_match(match, node_type, confidence):
        name_group = self._find_name_group(node_type)
        bad_name_group = self._bad_names.setdefault(name_group, {})
        warnings = bad_name_group.setdefault(match.lastgroup, [])
        warnings.append((node, node_type, name, confidence))
    if ((match is None) and (not _should_exempt_from_invalid_name(node))):
        self._raise_name_warning(node, node_type, name, confidence)
check for a name using the type's regexp
def _check_name(self, node_type, name, node, confidence=interfaces.HIGH):
    
    non_ascii_match = self._non_ascii_rgx_compiled.match(name)
    if (non_ascii_match is not None):
        self._raise_name_warning(node, node_type, name, confidence, warning='non-ascii-name')

    def _should_exempt_from_invalid_name(node):
        if (node_type == 'variable'):
            inferred = utils.safe_infer(node)
            if isinstance(inferred, astroid.ClassDef):
                return True
        return False
    if utils.is_inside_except(node):
        (clobbering, _) = utils.clobber_in_except(node)
        if clobbering:
            return
    if self._name_allowed_by_regex(name=name):
        return
    if self._name_disallowed_by_regex(name=name):
        self.stats[('badname_' + node_type)] += 1
        self.add_message('disallowed-name', node=node, args=name)
        return
    regexp = self._name_regexps[node_type]
    match = regexp.match(name)
    if _is_multi_naming_match(match, node_type, confidence):
        name_group = self._find_name_group(node_type)
        bad_name_group = self._bad_names.setdefault(name_group, {})
        warnings = bad_name_group.setdefault(match.lastgroup, [])
        warnings.append((node, node_type, name, confidence))
    if ((match is None) and (not _should_exempt_from_invalid_name(node))):
        self._raise_name_warning(node, node_type, name, confidence)