<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def enumerate_guest_properties(self, patterns):
 """Return a list of the guest properties matching a set of patterns along with their values, timestamps and flags. in patterns of type str The patterns to match the properties against, separated by '|' characters. If this is empty or @c null, all properties will match. out names of type str The names of the properties returned. out values of type str The values of the properties returned. The array entries match the corresponding entries in the @a name array. out timestamps of type int The timestamps of the properties returned. The array entries match the corresponding entries in the @a name array. out flags of type str The flags of the properties returned. The array entries match the corresponding entries in the @a name array. """

        if not isinstance(patterns, basestring):
            raise TypeError("patterns can only be an instance of type basestring")
        (names, values, timestamps, flags) = self._call("enumerateGuestProperties",
                     in_p=[patterns])
        return (names, values, timestamps, flags)