'When cloning fields we instantiate using the arguments it was
originally created with, rather than copying the complete state.'

def __deepcopy__(self, memo):

    args = [(copy.deepcopy(item) if (not isinstance(item, REGEX_TYPE)) else item) for item in self._args]
    kwargs = {key: (copy.deepcopy(value) if (key not in (u'validators', u'regex')) else value) for (key, value) in self._kwargs.items()}
    return self.__class__(*args, **kwargs)
