JavaScript (ES6), 487 467 bytes
[X=v=>w=>x=>[[]][!!(b=v.pop())|(d=w.pop()||b)]][T=([...v]//\\[v...])=T][[(d||()qoq.w=b)|(()qoq.v=d)!!][[]]<=x<=w<=v=X] )=>([...w])=>x=>X(v)(w)(x)||[(x!=b||d)[8-8]]+T(v)(w)(x)]//\\[(x)(w)(v)T+[[8-8](b||d=!x)]||(x)(w)(v)X<=x<=([w...])<=( W=T('!*+-:=ITX^_|(){}[]<>\\/')(')(}{][></\\')//\\('//\><][}{)(')('\//<>[]{}()|_^XTI=:-+*!')T=W U=([...o])=>(V=v=>!o[v]||(W(o[v])==o.pop())*V(v+8/8))(8-8)//\\(8-8)((8\8+v)V*(()qoq.o==([v]o)W)||[v]o!<=v=V)<=([o...])=U Defines a function U that gives the desired output, along with several helper functions. Output is truthy/falsy; usually 1/0, but the empty string gives true.