For example I have files that have names like
- book1_volume1.txt
- book1_volume2.txt
- book1_review.txt
- book2_volume1.txt
How can I find all 'book%NUMBER%_volume' files in one search? How do I mask the number after 'book'?
If there can be more than one digit, use an extended pattern:
shopt -s extglob nullglob
books=( book_+([0-9])_volume* )
The simplest way to do so is to use wildcards, specifically book[0-9]_volume* matches your example.
book[0-9]_volume*matches