{ " +1.0E+01" } [ 10 "%+10.1E" sprintf ] unit-test
{ "-001.0E+01" } [ -10 "%+010.1E" sprintf ] unit-test
{ "+001.0E+01" } [ 10 "%+010.1E" sprintf ] unit-test
+{ "+001.0E-01" } [ 0.1 "%+010.1E" sprintf ] unit-test
{ "ff" } [ 0xff "%x" sprintf ] unit-test
{ "FF" } [ 0xff "%X" sprintf ] unit-test
pad-width = ([0-9])* => [[ >digits ]]
pad = pad-align pad-char pad-width => [[ <reversed> >quotation dup first 0 = [ drop [ ] ] when ]]
-sign_ = [+ ] => [[ '[ dup CHAR: - swap index [ _ prefix ] unless ] ]]
+sign_ = [+ ] => [[ '[ dup first CHAR: - = [ _ prefix ] unless ] ]]
sign = (sign_)? => [[ [ ] or ]]
width_ = "." ([0-9])* => [[ second >digits '[ _ short head ] ]]