If your iRule doesn't match anything the BIGIP will use the pool defined in your vs configuration.
But if you use a default statement in your switch command to discard everything then you'll never use your default pool defined.
So if you want to do so you need to use the first statement where you can remove the default statement then. Should look like this
when HTTP_REQUEST {
switch -glob [HTTP::uri] {
"XML_[A-Z]*_P" -
"XML_[A-Z]*_T"
{
drop
}
}
}
You should even be able to remove the statement "XML_[A-Z]*_P" - since you don't do anything with it. It will save processing.
HTH