All regions with any of the named tags.

        Parameters
        ----------
        *tags : str
            Regional tags.  Can be preceded by a ``-`` to select regions
            without that tag.

        Returns
        -------
        an :class:`ApiQuery` of a list of :class:`Region`

def regionsbytag(self, *tags):
        """All regions with any of the named tags.

        Parameters
        ----------
        *tags : str
            Regional tags.  Can be preceded by a ``-`` to select regions
            without that tag.

        Returns
        -------
        an :class:`ApiQuery` of a list of :class:`Region`
        """
        if len(tags) > 10:
            raise ValueError('You can specify up to 10 tags')
        if not tags:
            raise ValueError('No tags specified')

        # We don't check for invalid tags here because the behaviour is
        # fairly intuitive - quering for a non-existent tag returns no
        # regions, excluding it returns all of them.
        @api_query('regionsbytag', tags=','.join(tags))
        async def result(_, root):
            text = root.find('REGIONS').text
            return ([aionationstates.Region(r) for r in text.split(',')]
                    if text else [])
        return result(self)