Great suggestions everyone. I just thought of another way it can be done - Almost the same as rich without using masks.
Do your text
Duplicate it , making sure you only have the middle layer selected (assuming you have a background and two text layers now) and turn the eye off the top layer. Alpha to select the text and fill it with a pattern of your choice. Select > none.
Now go to the top text layer (Turn the eye back on and make sure it is selected) Alpha to select and fill with the gradient of your choice.
Making sure your top layer is still selected using the rectangle select tool and go around the top or bottom half of your text, press delete.
If you have more than one line of text you will need to do this multiple times.
If you have more than one line of text you will need to do this multiple times.
Here is one with the pattern on the bottom
[attachment=7515]