I'm working on the same thing.
I should have a couple extendable parser libraries that people can use soon. I've got the lexer done and I'm busy throwing together the parser.
The first library is being written in Ruby and I intend to translate it to Java when it's done. I tried a Java version first, but I got bogged down in stupid details so I switched to Ruby so the language won't get in my way while I'm still thinking.
I'm happy with my approach which allows switching between multiple lexers and multiple expression types with distfix operators. The lexers are just ordered series of regex expressions.
The parsing is simple operator precedence outside of the distfix parts of the productions and LL(1) inside. We'll see if I find I want anything stronger.