why use '.*' after $2 i.e (\-?\d+.?\d*).*/. Your code will still have worked as (\-?\d+.?\d*) for your $2.