Brain-Flak, 175 bytes (174 chars + 1 flag)
Run with -c
flag.
{(({})<(())>){({}[()]<([{}])>)}{}(({}<>{}<><({}<>)((()()()()()){})>)<{({}[()]<((((()()()()){}){}){})>)}>{})<>}<>{}{({}<>)(({})(())){({}[()]<([{}]())>)}{}{<>{}<>(<{}>)}{}<>}<>
##Explanation
Explanation
{ for each char in the input...
(({})<(())>){({}[()]<([{}])>)}{} push 1/-1 for backslash/slash
((
{}<>{}<> add the 1/-1 to a running total
<
({}<>) move slash/backslash to other stack
((()()()()()){}) newline
>
)<{({}[()]<((((()()()()){}){}){})>)}>{}) spaces
<>
}<>{} end for
reverse data order, removing one space before backslash
{({}<>)(({})(())){({}[()]<([{}]())>)}{}{<>{}<>(<{}>)}{}<>}<>