"Escape" in RegEx-speak means put a \ in front of the character. It's necessary with anything that has a special meaning, to show that you mean the literal character. For example:
(blahblah) = captured group containing "blahblah"
\(blahblah\) = the literal string "(blahblah)" --for example in user-agents.
. = any one character
\. = a literal period or dot, accept no substitutions
Anyway, you seem to have misplaced your
mod_rewrite [httpd.apache.org] syntax although it started out just right. It goes:
RewriteRule pattern-with-optional-captures-and-anchors target-optionally-reusing-captured-stuff [optional-flags]
Each of those spaces has semantic meaning: "That was one part of the rule, now we move on to the next part". So if you ever needed to make a rule about something containing literal spaces-- again, user agents are the likeliest-- you would have to "escape" the space itself. This is specific to mod_rewrite, not part of the RegEx standard.
The target of a redirect should always begin with the full protocol and domain. You can go merrily along for years ignoring this rule, especially if you are on shared hosting and you've asked them to redirect to your preferred sitename (with/without www.) before the request ever reaches your htaccess. But again, to be safe:
http://www.example.com/$1.php [R=301,L]
Yes, just to confuse you, the $ has two separate and unrelated meanings. In the pattern it's an ending anchor; in the target it represents a capture. You can have up to nine of 'em, though this would not be a pretty sight.
Urk. I just realized I may have said something that misled you.
[^.] meaning "capture everything that isn't a period"
By itself, [blahblah] with something inside of brackets means "capture
one of whatever it is". To capture more than one, you still need some kind of quantifier:
* = zero or more, as many as you can gobble
+ = one or more, ditto, but there has to be at least one
{2} and similar forms = this exact number of items
Also: brackets don't mean "skip anything that doesn't fit". They mean "stop when you get to something that doesn't fit". A pattern you will see often is the one for capturing some number of directories:
([^/]+/)
So [^.]+ means "gobble away, but stop the moment you hit a period".