<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def get_files_re(self, file_re, full_path=False, ignorecase=False):
 """Finds all files that match file_re and returns their list. Doesn't return directories, only files. Args: file_re: raw string to match files against (gets compiled into re) full_path: whether to match against full path inside the archive or just the filenames ignorecase: whether to ignore case when using the given re Returns: List of full paths of files inside the archive that match the given file_re. """

        try:
            if ignorecase:
                compiled_re = re.compile(file_re, re.I)
            else:
                compiled_re = re.compile(file_re)
        except sre_constants.error:
            logger.error("Failed to compile regex: {}.".format(file_re))
            return []

        found = []

        if self.handle:
            for member in self.handle.getmembers():
                if isinstance(member, TarInfo) and member.isdir():
                    pass  # for TarInfo files, filter out directories
                elif (full_path and compiled_re.search(member.name)) or (
                    not full_path and compiled_re.search(os.path.basename(
                        member.name))):
                    found.append(member.name)

        return found