Esto es más una pregunta C que una pregunta EE. Considere la precedencia del operador para la comparación (==) que es 7 vs. bitwise AND (&) que es 8.
Así que tienes RB3 & RB4 & (RB5 == 0). Por lo tanto, será cierto si RB3 es 1, RB4 es 1 y RB5 es 0, probablemente no es lo que querías.
Tal vez (0 == (RB3 | RB4 | RB5)) es lo que quieres.
Tenga en cuenta que prefiero evitar poner un valor L en el lado izquierdo de una expresión de comparación. Eso es una cuestión de estilo: si se omite uno de los signos = (un error común), el compilador emitirá un mensaje de error en lugar de (en el mejor de los casos) una advertencia, ya que de lo contrario es una declaración de asignación válida.