My educated guess :
I don't thinks there ever is a need to search for `[] within <...>` because this would return you each and every token separately.
Instead just use :
`<speech date="2017.*|2018.*|2019.*|2020.*|2021.*|2022.*" & speaker_party != "SDS|SNS|NSi"/>`
This would return the 53.000 <speech>es you are interested in, and you can proceed from there.
cheers
Hannes