For some reason, it's hard to visualize the precedence in a regex; maybe it's the lack of whitespace (unless you use //x). Anyway, your attempt has a precedence problem.
It's parsed as a match of either /SW=?/ or /:?\s*(..../.
Enclose the | and its choices in (?: ) like so: /SW(?:=?|:?)\s*.../ though you don't need ? on both alternatives. In fact, you could say (?:=|:|) (using an empty alternative) or
(?:=?|:) or (?:=|:)? or [=:]?.
By "ignore the word 'SWITCH'" do you mean allow SWITCH or SW interchangably? If so, replace SW with SW(?:ITCH)?.