It also might be worth making the `(book|movie|music)` be a wider pattern. You can they validate it's book or movie or music, and warn if the user says something else. If you don't do this, then that kind of typo would silently not match the respond regex leading to a confused user.