This is what I use to force a "www" prefix:
Code:
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
I'm not sure if your version is the cause of your problem or not, but I at least like the portability of my version.
For the second part, I think your syntax is backwards (your match and replacement are reversed). And to get the numbered items into a single line you use a regular expression match instead of the literal string you are trying to match. Try this (untested):
Code:
#note: I'm not sure if the question mark needs to be escaped or not, but I went ahead and escaped it...
RewriteRule ^(offer.php\?pos=[0-9]) offer-1$ [L]