more tests (and fixes) for background gradients

- trailing $ in gradient regexp was preventing them from being parsed at all
- more gradient expression cases added to tests