<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 async def on_isupport_prefix(self, value):
 """ Nickname prefixes on channels and their associated modes. """

        if not value:
            # No prefixes support.
            self._nickname_prefixes = collections.OrderedDict()
            return

        modes, prefixes = value.lstrip('(').split(')', 1)

        # Update valid channel modes and their behaviour as CHANMODES doesn't include PREFIX modes.
        self._channel_modes.update(set(modes))
        if not rfc1459.protocol.BEHAVIOUR_PARAMETER in self._channel_modes_behaviour:
            self._channel_modes_behaviour[rfc1459.protocol.BEHAVIOUR_PARAMETER] = set()
        self._channel_modes_behaviour[rfc1459.protocol.BEHAVIOUR_PARAMETER].update(set(modes))

        self._nickname_prefixes = collections.OrderedDict()
        for mode, prefix in zip(modes, prefixes):
            self._nickname_prefixes[prefix] = mode