$_=<>; {s/(\[)(\d+)(\]B@)(\D+)(\d+)(:[>})])/$4."."x(2+length$5).$1.($2+$5).$3/e&&redo} {s/(\[)(\d+)(\]B@)(\D+)\1(\d+)\3/$4.","x(4+length$5).$1.($2+$5).$3/e&&redo} print