| :name or {name} |
Captures anything but a forward slash in a semi-greedy fashion. Capture is named name.
Capture behavior can be modified with capture and greedy option.
|
| *name or {+name} |
Captures anything in a non-greedy fashion. Capture is named name.
|
| * or {+splat} |
Captures anything in a non-greedy fashion. Capture is named splat.
It is always an array of captures, as you can use it more than once in a pattern.
|
| (expression) |
Enclosed expression is a group. Useful when combined with ? to make it optional,
or to separate two elements that would otherwise be parsed as one.
|
| expression|expression|... |
Will match anything matching the nested expressions. May contain any other syntax element, including captures.
|
| x? |
Makes x optional. For instance, (foo)? matches foo or an empty string. |
| / |
Matches forward slash. Does not match URI encoded version of forward slash.
|
| \x |
Matches x or URI encoded version of x. For instance \* matches *. |
| any other character |
Matches exactly that character or a URI encoded version of it. |