There's a lot of "self.xml.get('...')" here.  It'd be nicer to do those checks once at the beginning, in setup_response?
```
self.backward = '_or_' in self.xml.get('answer')
self.regex = self.xml.get('regexp')
self.ci = self.xml.get('type') == 'ci'
```

Then you could make checks like `if self.ci:`