11# MATCH clause
22
3- <simple match statement> ::=
3+ <simple match statement> ::=
44 "MATCH" <graph pattern>
55
6- <graph pattern> ::=
6+ <graph pattern> ::=
77 [ <match mode> ] <path pattern> [ { "," <path pattern> }... ] [ <graph pattern where clause> ]
88
9- <path pattern> ::=
9+ <path pattern> ::=
1010 [ <binding variable> "=" ] [ <path pattern prefix> ] <path pattern expression>
1111
12- <path pattern prefix> ::=
12+ <path pattern prefix> ::=
1313 "ALL" [ "PATH" | "PATHS" ]
1414 | "ANY" [ <unsigned decimal integer> | "$" <parameter name> ] [ "PATH" | "PATHS" ]
15- | "ALL" " SHORTEST" [ "PATH" | "PATHS" ]
16- | "ANY" " SHORTEST" [ "PATH" | "PATHS" ]
15+ | "ALL SHORTEST" [ "PATH" | "PATHS" ]
16+ | "ANY SHORTEST" [ "PATH" | "PATHS" ]
1717 | "SHORTEST" { <unsigned decimal integer> | "$" <parameter name> } [ "PATH" | "PATHS" ]
1818 | "SHORTEST" [ <unsigned decimal integer> | "$" <parameter name> ] [ "PATH" | "PATHS" ] { "GROUP" | "GROUPS" }
1919
20- <path pattern expression> ::=
20+ <path pattern expression> ::=
2121 <path term>
2222 | <legacy shortest path pattern>
2323
24- <path term> ::=
24+ <path term> ::=
2525 <path factor>
2626 | <path term> <path factor>
2727
28- <path factor> ::=
28+ <path factor> ::=
2929 <path primary>
3030 | <path primary> <graph pattern quantifier>
3131 | <path primary> "?"
3232
33- <path primary> ::=
33+ <path primary> ::=
3434 <node pattern>
3535 | <relationship pattern>
3636 | "(" [ <binding variable> "=" ] <path pattern expression> [ "WHERE" <value expression> ] ")"
3737
38- <node pattern> ::=
38+ <node pattern> ::=
3939 "(" [ <binding variable> [ <is node label expression> ] [ <element pattern predicate> ] | <is node label expression> [ <element pattern predicate> ] | <element pattern predicate> ] ")"
4040
41- <element pattern predicate> ::=
41+ <element pattern predicate> ::=
4242 "WHERE" <value expression>
4343 | <element property specification>
4444 | "$" <parameter name>
4545
46- <element property specification> ::=
46+ <element property specification> ::=
4747 "{" <property key value pair list> "}"
4848
49- <property key value pair list> ::=
49+ <property key value pair list> ::=
5050 <property key value pair> [ { "," <property key value pair> }... ]
5151
52- <property key value pair> ::=
52+ <property key value pair> ::=
5353 <property name> ":" <value expression>
5454
55- <relationship pattern> ::=
56- "<" " -" [ "[" [ <relationship pattern filler> ] "]" ] "-"
57- | "-" [ "[" [ <relationship pattern filler> ] "]" ] "-" " >"
58- | "<" " -" [ "[" [ <relationship pattern filler> ] "]" ] "-" " >"
55+ <relationship pattern> ::=
56+ "<-" [ "[" [ <relationship pattern filler> ] "]" ] "-"
57+ | "-" [ "[" [ <relationship pattern filler> ] "]" ] "->"
58+ | "<-" [ "[" [ <relationship pattern filler> ] "]" ] "->"
5959 | "-" [ "[" [ <relationship pattern filler> ] "]" ] "-"
6060
61- <relationship pattern filler> ::=
61+ <relationship pattern filler> ::=
6262 <binding variable> [ <is relationship label expression> ] [ <path length> ] [ <element pattern predicate> ]
6363 | <is relationship label expression> [ <path length> ] [ <element pattern predicate> ]
6464 | <path length> [ <element pattern predicate> ]
6565 | <element pattern predicate>
6666
67- <path length> ::=
67+ <path length> ::=
6868 "*" [ [ <unsigned decimal integer> ] ".." [ <unsigned decimal integer> ] | <unsigned decimal integer> ]
6969
70- <graph pattern quantifier> ::=
70+ <graph pattern quantifier> ::=
7171 "*"
7272 | "+"
7373 | "{" <unsigned integer> "}"
7474 | "{" [ <unsigned decimal integer> ] "," [ <unsigned decimal integer> ] "}"
7575
76- <is node label expression> ::=
76+ <is node label expression> ::=
7777 ":" <node label expression legacy>
7878 | { ":" | "IS" } <label expression>
7979
80- <is relationship label expression> ::=
80+ <is relationship label expression> ::=
8181 ":" <relationship label expression legacy>
8282 | { ":" | "IS" } <label expression>
8383
84- <label expression> ::=
84+ <label expression> ::=
8585 <label term>
8686 | <label expression> "|" <label term>
8787
88- <label term> ::=
88+ <label term> ::=
8989 <label factor>
9090 | <label term> "&" <label factor>
9191
92- <label factor> ::=
92+ <label factor> ::=
9393 <label primary>
9494 | <label negation>
9595
96- <label negation> ::=
96+ <label negation> ::=
9797 "!" <label primary>
9898
99- <label primary> ::=
99+ <label primary> ::=
100100 <label name>
101101 | "(" <label expression> ")"
102102 | "%"
103103 | "$" [ "ALL" | "ANY" ] "(" <value expression> ")"
104104
105- <value expression> ::=
105+ <value expression> ::=
106106 <boolean value expression>
107107
108- <boolean value expression> ::=
108+ <boolean value expression> ::=
109109 <boolean term xor>
110110 | <boolean value expression> "OR" <boolean term xor>
111111
112- <boolean term xor> ::=
112+ <boolean term xor> ::=
113113 <boolean term>
114114 | <boolean term xor> "XOR" <boolean term>
115115
116- <boolean term> ::=
116+ <boolean term> ::=
117117 <boolean factor>
118118 | <boolean term> "AND" <boolean factor>
119119
120- <boolean factor> ::=
120+ <boolean factor> ::=
121121 [ { "NOT" }... ] <boolean primary>
122122
123- <boolean primary> ::=
123+ <boolean primary> ::=
124124 <pattern expression>
125125 | <predicate>
126126
127- <pattern expression> ::=
127+ <pattern expression> ::=
128128 <node pattern> { <relationship pattern> <node pattern> }...
129129
130- <label name> ::=
131- link:/cypher-manual/25/syntax/naming/[ <identifier>]
130+ <label name> ::=
131+ <identifier>
132132
133- <property name> ::=
134- link:/cypher-manual/25/syntax/naming/[ <identifier>]
133+ <property name> ::=
134+ <identifier>
135135
136- <binding variable> ::=
137- link:/cypher-manual/25/syntax/naming/[ <identifier>]
136+ <binding variable> ::=
137+ <identifier>
0 commit comments