#A hierarchy of six classes is used: "|", "/\", "[]", "{}", #"()", and "<>". When two smushing sub-characters are from #different classes, the one from the latter class will be used. s%(?:\||([/\\])|([[]])|([{}])|([()])|([<>]))\000 (?:\||([/\\])|([[]])|([{}])|([()])|([<>]))% $5||$10 || $4||$9 || $3||$8 || $2||$7 || $1||$6%egx => s{ [|/\\\[\]{}()<>]\0(?:=[<>]) | [|/\\\[\]{}()] \0(?:=[()]) | [|/\\\[\]{}] \0(?:=[{}]) | [|/\\\[\]] \0(?:=[\[\]]) | [|/\\] \0(?=[/\\]) | [|] \0(?=[|]) | (?<=[<>]) \0[|/\\\[\]{}()] | (?<=[()]) \0[|/\\\[\]{}] | (?<=[{}]) \0[(|/\\\[\]] | (?<=[[]]) \0[|/\\\[] | (?<=[/\\]) \0[|] } {}gx