User intput matching with another intent/entity

 ## regex: booking_number
- \b[0-9]{5}\b

## regex: phone_no
- \b05\d{8}\b

## intent:phone_no
- [0512345678](phone_no)
- [0512345679](phone_no)
- [0523456789](phone_no)
- [0534567890](phone_no)
- [0545678901](phone_no)
- [0512345678](phone_no)
- [0512345674](phone_no)

## intent:booking_number
- [54321](booking_number)
- [54362](booking_number)
- [54363](booking_number)
- [54364](booking_number)
- [54365](booking_number)
- [57762](booking_number)
- [58362](booking_number)
- [59362](booking_number)
- [50362](booking_number)
- [51362](booking_number)
- [52362](booking_number)
- [53362](booking_number)
- [54362](booking_number)
- [54162](booking_number)
- [54662](booking_number)

The problem is when i type invalid phone number say 512345678 (didn’t start with 05 and length is not 10) the input is matching with booking_numberintent or somtimes matching withbooking_numberentity and filed the slotbooking_number. I don't want this behaviour, cause it's create so many problem. Why this kind of user input matching with booking_number` intent/entity? How can i resolve this?

It’s hard to say exactly what is happening, but I think that because the numbers like 32342563 are substituted with __NUMBER__ token, so that content of a number is irrelevant, your input doesn’t fall under either of regexes, so the classifier predicts most probable class.

The recommended way would be to have joint intent input_number and abstract entity number, then use custom action to disambiguate the number using regex