Did you read man grep?
I ask because if I understand correct what you have written, you do not understand quite what grep is doing. It chooses lines from a fiile and rejects others. So when you grep on ‘QUESTION’, you will get as output only the lines containing the string QUESTION, but not parts of those lines. When you want parts of those line, you can start with grep to select the lines and then pipe to other tools like sed, etc. (like suggested above by others). Something like:
grep 'QUESTION' inputfile | sed -e 's/QUESTION//' -e 's/?//'
These sort of tasks require a combination of tools. I recommend to study at least the man pages of grep, sed, tr, cut and regular expresssions.
You are correct, but awk is not anybodies tool (but learning it is not a bad idea) and what I tried to show to the OP is that you should split up your task in logical parts and that Unix/Linux then offers you the primitives (tools) that can do each of those tasks (task1 selecting lines, task2 replacing strings with empty ones) and that piping is a strong mechanism in combining these.
But again, you are correct and in your awk example one sees both tasks also in the right sequence: first select, then change strings.