$binary_data =~ /(.)(.){(?{unpack 'H*', $1})}/; # ? /(.)(?{unpack 'H*', $1})(.){$^R}/; # ??? /(.)((??{'.' x $1}))/; /(\d)((??{'.*?\n' x $1}))/; #### /(\d) ([^\d]+?\n)? ([^\d]+?\n)? ([^\d]+?\n)? ([^\d]+?\n)? ([^\d]+?\n)? ([^\d]+?\n)? ([^\d]+?\n)? ([^\d]+?\n)? ([^\d]+?\n)? /x; printf "%d: <%s>\n", $_, eval '$'.$_ for 2..$1+1;