| Filters the :meth:`PlistFileParser.elements` class property elements using given pattern.
        | Will return a list of matching elements values, if you want to get only one element value, use
            the :meth:`PlistFileParser.get_value` method instead.

        Usage::

            >>> plist_file_parser = PlistFileParser("standard.plist")
            >>> plist_file_parser.parse()
            True
            >>> plist_file_parser.filter_values(r"String A")
            [u'My Value A']
            >>> plist_file_parser.filter_values(r"String.*")
            [u'My Value C', u'My Value B', u'My Value A']

        :param pattern: Regex filtering pattern.
        :type pattern: unicode
        :param flags: Regex flags.
        :type flags: int
        :return: Values.
        :rtype: list

def filter_values(self, pattern, flags=0):
        """
        | Filters the :meth:`PlistFileParser.elements` class property elements using given pattern.
        | Will return a list of matching elements values, if you want to get only one element value, use
            the :meth:`PlistFileParser.get_value` method instead.

        Usage::

            >>> plist_file_parser = PlistFileParser("standard.plist")
            >>> plist_file_parser.parse()
            True
            >>> plist_file_parser.filter_values(r"String A")
            [u'My Value A']
            >>> plist_file_parser.filter_values(r"String.*")
            [u'My Value C', u'My Value B', u'My Value A']

        :param pattern: Regex filtering pattern.
        :type pattern: unicode
        :param flags: Regex flags.
        :type flags: int
        :return: Values.
        :rtype: list
        """

        values = []
        if not self.__elements:
            return values

        for item in foundations.walkers.dictionaries_walker(self.__elements):
            path, element, value = item
            if re.search(pattern, element, flags):
                values.append(value)
        return values