H g/
]/.+1,/<\/pre/-1s/\([][(){} 	]\)\([[:alnum:]!#$%&*+/:;=?@^_`|~-]\{1,\}\)/\1\2<\/span token='\2'>/g
g/
]/.+1,/<\/pre/-1s/^\([[:alnum:]!#$%&*+/:;=?@^_`|~-]\{1,\}\)/\1<\/span token='\1'>/g
g/<\/[^s][^p]/s///g\
s/<\/span token='[^']*'>//g
g/
]/.+1,/<\/pre/-1s/$/<\/span newline>/
!# Remove comment tokens, for further comment wrapping
g;#\(.*\)\(<\/span newline>\);s;;#\1\2;
g;//\(.*\)\(<\/span newline>\);s;;//\1\2;
g;--\(.*\)\(<\/span newline>\);s;;--\1\2;
w
Q