@rwldrn 
Regarding getting rid of querySelector altogether, I actually had it that way initially, but that was not playing with innerHTML operation.
Since bodyHTML was containing HTML tags for the phone links, so when it got assigned to innerHTML, it was getting formatted as it was placed into the document with some additional <a> tags making the beginning text of message a link.
 
Here is the commit, which highlights the issue and the fix:
https://github.com/ssaroha/gaia/commit/35faf4396925eadbcf3b984c6d997798028d072e

Specifically, it was breaking at  line 1272 in the above commit
messageDOM.innerHTML = result;

Secondly, regarding replacing regex, again initially I had it simple string, but changed it to Regex to make it more readable. 
https://github.com/ssaroha/gaia/commit/666f1d094c6fbc21d261a594b1727028b9ef818c

I can change it back, given the performance benefit of not using regex.

Thirdly, I am surprised how the basic test 999-999-9999 does not work. I have tested this and other forms of expressions with the build on the device, and they are able to extract such numbers.
Also, I have unit tests which exercise different cases, 
https://github.com/ssaroha/gaia/blob/b2afea0b9a479f570b231169753fd7ed3eb9657e/apps/sms/test/unit/sms_test.js

here is the input test strings I have tested successfully locally:
var messageBody = '995-382-7369 futures to a 4458901 slight' +
          ' 789-7890 rebound +1-556-667-7789 on Wall Street 9953827369' +
          ' on Wednesday, +12343454567 with 55.55.55 futures +919810137553' +
          ' for the S&P 500 up 0.34 percent, Dow Jones futures up 0.12' +
          ' percent100 futures up 0.51 percent at 0921 GMT.';

var messageBody = 'Hello there, here are numbers with ' +
                      'dashes 408-746-9721, 4087469721, 7469721';

I just tried a snippet on jsbin right now with 999-999-9999, and it does work, here is the link: http://jsbin.com/olewib/1/edit

please click HTML tab/output tabs.