have had same problem
Change strpos for stripos in function getUrlencodedPrefix located at vendor\symfony\http-foundation\Request.php.
We have had issues accessing our laravel application on IIS with fast-cgi.
The app url http://server/myApp points to the application public folder and 90% of the time it works, but for some reason after days of being OK it suddenly stops working with a route error [in RouteCollection.php (line 179)]. The only way to get access back through the same url but lowercase "A" http://server/myapp. After days it switches back to uppercase "A".
The issue became worst about 2 days ago when it started switching almost on an hourly bases.
We have traced back the issue to vendor\symfony\http-foundation\Request.php line 2043 [strpos changing it to stripos] fixed the problem.
What seems to be the root cause is the handleing of fast-cgi with the _SERVER['SCRIPT_NAME'] variable. When the application pool recycles the php-cgi.exe process the first request to the process will set this variable to the Case Sensative portion of the virtual folder. From then on matchAgainstRoutes (vendor\laravel\framework\src\Illuminate\Routing\RouteCollection.php) will fail as the case will not match.
I am looking for a long term solution, as any update at Symphony Core or Laravel will most probably change this FIX back. I hope in the meantime this post will help.