Blade matchers need parenthetical awareness.

Reopening: https://github.com/laravel/framework/pull/4693

> Blade matchers need parenthetical depth awareness - greedy matching with .* leads to unwanted matches.
> 
> IE:
> 
>     @extension($arg, $otherArg, ")", )         ng-src="getSource(someVar);"
> 
> Fails to match what is logically the extension - it matches 
> 
>     ($arg, $otherArg, ")", )         ng-src="getSource(someVar)
> 
> Which causes view failure.
>     
> 
> See: http://ideone.com/YmVtpK
> 
> For proof of concept.

RE Comment left on the previous request:
 
> You've made a syntax error there (missing semicolon). Also, you should really add some tests for this to make sure we don't break this later by mistake.

Yeah that's what happens when you make the edits on a local environment, then fork and try to back pull using the Git editor.

I've fixed it and added 34 tests (all of which pass, currently).