It should work with any input unpack() itself normally works with. It's a simple (and inefficient) technique: It appends 'a*' to the end of the unpack string and pops off the last element returned. This will be the remainder of the string. A simple subtraction (length($fullstring) - length($remainder)
) will reveal the point at which unpack() stopped unpacking the data the user actually asked for.
}"for split/</;$_=$,,y[A-Z a-z]