正则表达式:获取一个可选参数,可能很简单

I wondered if it was possible to get an optional parameter from a regex. Here is the regex I tried :

rewrite ^/(m/)?string$ /page.php?p=$1

The parameter 'm/' is optional, but I would like that if this parameter exist, then p="m" and not the string "m/".

In other words :

/m/string  =>  /page.php?p=m
/string    =>  /page.php

Any idea ?

If you can't solve something by one regex.. Use two regexes!

rewrite ^/m/string$ /page.php?p=$1 last;
rewrite ^/string$ /page.php last;

The last stops further matches of the original URL.