Valide una expresión booleana con corchetes en C #
Quiero validar una cadena en C # que contiene una expresión booleana entre paréntesis. La cadena solo debe contener los números 1-9, corchetes, "O", "Y".
Ejemplos de buenas cuerdas:
"1 Y 2"
"2 o 4"
"4 Y (3 O 5)"
"2"
Y así...
No estoy seguro de si la expresión regular es lo suficientemente flexible para esta tarea. ¿Hay una buena forma corta de lograr esto en C #?