s/\G(?|(\0{16})+(?{'*'})|(.{1,16})(?{...}))/$^R\n/sgr What you used. s/\G(\0{16})|\G.{1,16}/($1?"*":...)."\n"/segr Could be used. s/\G.{1,16}/($&eq"\0"x16?"*":...)."\n"/segr What I used.