A couple days ago I wrote about Java syntax for hexadecimal representation of floating point numbers like this:
0x1.fffffeP+127f
token HexLiteral {
  '0' ['x'|'X'] [
     | '.' + ? ?
     | + [
         | '.' * ? ?
         | ?
     ]
  ]
}
token HexDigit { [\d|<[a..f]>|<[A..F]>] }
token HexExponent { ['p'|'P'] ['+'|'-']? \d+ }
token FloatTypeSuffix { 'f'|'F'|'d'|'D' }