Try this:
(?!member|user)([^/\.]+)/([^/\.]+)/?$
That should match anything in the form folder/something/ I would think.
Although I'm unsure of what a mod_rewrite is (still new to a lot of terms!). Because the $ is included, it should only match back to something/something/ and not any further (such as something/something/something). Is the file-name a directory, or would you want to match something like folder/something.php. If that's the case, you would need to allow for the period.
If you need to use the hyphens to separate it for backtracking, and it's always the same double hyphen filename structure, you could use
(?!member|user)([^/\.]+)/([^/\.-]+-([^/\.-]+-([^/\.-]+)/?$
that should match folder/file-name-12/ and also capture folder, file, name, and 12. You could split it up however you wanted, depending on the use.
But I'm thinking that it might not be matching if you used the ^ to start off if the line begins with http:// - I'm pretty sure ^ matches the start of the line, meaning what you are trying to apply the regex on would need to be in the form folder/something/ instead of
http://www.example.com/folder/something/
Although now that I re-read your post, you say everything worked fine without the negative lookahead. Hmm..
I'm not sure! Perhaps using a conditional?
(?member dosomething|else) . I'm really not sure..I need to brush up on my regex.
Is alternation allowed in a negative lookahead? Perhaps split it up and see what happens...
instead of (?!member|user), try (?!member)(?!user)....
I wouldn't think it would be a problem, but I don't know!
AH HA! I REMEMBER! maybe.
Yes, yes...try splitting it up. If you are doing this in PHP, which is basically the same thing as Perl, then you may not be allowed to use:
(?!member|user)
This is because it is not a fixed length. The length can either be 6 characters or 4, and Perl is pretty restrictive with the length allowed in a lookaround. However, PHP might allow for variable length, but I'm not entirely sure...Oh but then again the restriction may only apply to a lookbehind and not a lookahead...
Try it?