string manipulation – How to make StringCases to understand the scientific form of numbers?

Consider the string

string="Tau_distribution_mass=547.0_theta=6.87982e-05.txt";

I would like to make a row

{distr,massvalue, thetavalue};

I write

StringCases[string, 
 mixing__ ~~ "_distribution_mass=" ~~ mass : NumberString ~~ 
   "_theta=" ~~ angle : NumberString ~~ ".txt" :> {mixing, 
   ToExpression[mass], ToExpression[angle]}]

but the problem is that NumberString does not recognize the scientific form of numbers, because of which the code returns empty. Could you please tell me what is an analog of NumberString in this example?