1=>(\.//)?(((child::)?((\i\c*:)?(\i\c*|\*)))|\.)(/(((child::)?((\i\c*:)?(\i\c*|\*)))|\.))*(\|(\.//)?(((child::)?((\i\c*:)?(\i\c*|\*)))|\.)(/(((child::)?((\i\c*:)?(\i\c*|\*)))|\.))*)*
2a
3a12/b312/b312/b312/b312/b312/b312/b312/b312/b312/b312/b312/b3
4*
5a|b
6.//a:b
7a/b/c
8a/*/b
9a:*/b:*/c:*
10child::a/child::b:*
11child::a/child::b:*|a/*/b|.//a:b
121
131ab
14a:1
15@a
16ancestor::a
17#
18# the previous regexp from the Schemas for Schemas was broken
19# here is the fixed one:
20# http://lists.w3.org/Archives/Public/www-xml-schema-comments/2002AprJun/0005.html
21#
22=>(\.//)?(((child::)?(([\i-[:]][\c-[:]]*:)?([\i-[:]][\c-[:]]*|\*)))|\.)(/(((child::)?(([\i-[:]][\c-[:]]*:)?([\i-[:]][\c-[:]]*|\*)))|\.))*(\|(\.//)?(((child::)?(([\i-[:]][\c-[:]]*:)?([\i-[:]][\c-[:]]*|\*)))|\.)(/(((child::)?(([\i-[:]][\c-[:]]*:)?([\i-[:]][\c-[:]]*|\*)))|\.))*)*
23a
24a12/b312/b312/b312/b312/b312/b312/b312/b312/b312/b312/b312/b3
25*
26a|b
27.//a:b
28a/b/c
29a/*/b
30a:*/b:*/c:*
31child::a/child::b:*
32child::a/child::b:*|a/*/b|.//a:b
331
341ab
35a:1
36@a
37ancestor::a
38