I think I have to accept that this is a generic aiml issue at least on Pandorabots. I’ve tested it every which way with <TOPIC> and <THAT> set and wherever I have a category with wildcard * if the user happens to type in something that exactly matches the pattern in another category, then the current process (such as a quiz) is broken and the user gets an answer back from this other category rather than ‘That was incorrect, would you like to try again’. So it seems that <TOPIC> and <THAT> used in conjunction with * has a lower precedence than a matching word which doesn’t seem logical - you would have thought that <TOPIC> and/or <THAT> would have kept the user within the category rather than jumping out.
To make sure it wasn’t me, I tested this on Steve’s Square Bear chatbot. For instance if playing his Rock, Paper, Scissors game if I give an incorrect answer it tells me I am incorrect but if I say something that matches another category for example ‘red’ then I get answer back ‘What do I have that is red’ and the Rock, Paper, Scissors game is finished without any warning.
If I use wildcard _ then it does stay within the category but that doesn’t work for me in many cases where it would take precedence over correct answers or give other undesirable effects. I’ll probably rewrite my various quiz type files to use _ and conditions to avoid using * in these type of situations.