Wolfram Language
Paclet Repository
Community-contributed installable additions to the Wolfram Language
Primary Navigation
Categories
Cloud & Deployment
Core Language & Structure
Data Manipulation & Analysis
Engineering Data & Computation
External Interfaces & Connections
Financial Data & Computation
Geographic Data & Computation
Geometry
Graphs & Networks
Higher Mathematical Computation
Images
Knowledge Representation & Natural Language
Machine Learning
Notebook Documents & Presentation
Scientific and Medical Data & Computation
Social, Cultural & Linguistic Data
Strings & Text
Symbolic & Numeric Computation
System Operation & Setup
Time-Related Computation
User Interface Construction
Visualization & Graphics
Random Paclet
Alphabetical List
Using Paclets
Create a Paclet
Get Started
Download Definition Notebook
Learn More about
Wolfram Language
PatternMatcher
Guides
A Virtual Machine for the Pattern Matcher
Symbols
CompilePatternToBytecode
CreatePatternMatcherVirtualMachine
PatternBytecodeDisassemble
PatternBytecodeInformation
PatternBytecode
PatternBytecodeQ
PatternMatcherEnableTrace
PatternMatcherExecute
PatternMatcherMatch
PatternMatcherMatchQ
PatternMatcherReplace
PatternMatcherStep
PatternMatcherTraceEnabled
PatternMatcherTraceEnabledQ
PatternMatcherVirtualMachine
PatternToMatchFunction
DanielS`PatternMatcher`
P
a
t
t
e
r
n
M
a
t
c
h
e
r
E
x
e
c
u
t
e
P
a
t
t
e
r
n
M
a
t
c
h
e
r
E
x
e
c
u
t
e
[
v
m
,
e
x
p
r
]
r
u
n
s
a
p
a
t
t
e
r
n
m
a
t
c
h
i
n
g
v
i
r
t
u
a
l
m
a
c
h
i
n
e
v
m
o
n
t
h
e
e
x
p
r
e
s
s
i
o
n
e
x
p
r
a
n
d
r
e
t
u
r
n
s
t
h
e
r
e
s
u
l
t
a
l
o
n
g
w
i
t
h
e
x
e
c
u
t
i
o
n
m
e
t
a
d
a
t
a
.
P
a
t
t
e
r
n
M
a
t
c
h
e
r
E
x
e
c
u
t
e
[
p
a
t
t
,
e
x
p
r
]
a
u
t
o
m
a
t
i
c
a
l
l
y
c
o
m
p
i
l
e
s
p
a
t
t
t
o
P
a
t
t
e
r
n
B
y
t
e
c
o
d
e
,
c
r
e
a
t
e
s
a
v
i
r
t
u
a
l
m
a
c
h
i
n
e
,
a
n
d
m
a
t
c
h
e
s
e
x
p
r
.
D
e
t
a
i
l
s
a
n
d
O
p
t
i
o
n
s
Examples
(
4
)
Basic Examples
(
1
)
Match a simple literal pattern:
I
n
[
1
]
:
=
P
a
t
t
e
r
n
M
a
t
c
h
e
r
E
x
e
c
u
t
e
[
5
,
5
]
O
u
t
[
1
]
=
R
e
s
u
l
t
T
r
u
e
,
C
y
c
l
e
s
E
x
e
c
u
t
e
d
6
,
B
i
n
d
i
n
g
s
Match a pattern with a blank:
I
n
[
2
]
:
=
P
a
t
t
e
r
n
M
a
t
c
h
e
r
E
x
e
c
u
t
e
[
_
I
n
t
e
g
e
r
,
4
2
]
O
u
t
[
2
]
=
R
e
s
u
l
t
T
r
u
e
,
C
y
c
l
e
s
E
x
e
c
u
t
e
d
6
,
B
i
n
d
i
n
g
s
Match a pattern with a named variable:
I
n
[
3
]
:
=
P
a
t
t
e
r
n
M
a
t
c
h
e
r
E
x
e
c
u
t
e
[
{
x
_
,
x
_
}
,
{
5
,
5
}
]
O
u
t
[
3
]
=
R
e
s
u
l
t
T
r
u
e
,
C
y
c
l
e
s
E
x
e
c
u
t
e
d
2
2
,
B
i
n
d
i
n
g
s
G
l
o
b
a
l
`
x
5
Match fails when elements differ:
I
n
[
4
]
:
=
P
a
t
t
e
r
n
M
a
t
c
h
e
r
E
x
e
c
u
t
e
[
{
x
_
,
x
_
}
,
{
5
,
1
0
}
]
O
u
t
[
4
]
=
R
e
s
u
l
t
F
a
l
s
e
,
C
y
c
l
e
s
E
x
e
c
u
t
e
d
1
9
,
B
i
n
d
i
n
g
s
Match with head constraints:
I
n
[
5
]
:
=
P
a
t
t
e
r
n
M
a
t
c
h
e
r
E
x
e
c
u
t
e
[
f
[
_
I
n
t
e
g
e
r
,
_
S
t
r
i
n
g
]
,
f
[
4
2
,
"
t
e
x
t
"
]
]
O
u
t
[
5
]
=
R
e
s
u
l
t
T
r
u
e
,
C
y
c
l
e
s
E
x
e
c
u
t
e
d
1
8
,
B
i
n
d
i
n
g
s
Match using alternatives in the pattern:
I
n
[
6
]
:
=
P
a
t
t
e
r
n
M
a
t
c
h
e
r
E
x
e
c
u
t
e
[
x
_
I
n
t
e
g
e
r
|
x
_
R
e
a
l
,
3
1
4
]
O
u
t
[
6
]
=
R
e
s
u
l
t
T
r
u
e
,
C
y
c
l
e
s
E
x
e
c
u
t
e
d
1
0
,
B
i
n
d
i
n
g
s
G
l
o
b
a
l
`
x
3
1
4
I
n
[
7
]
:
=
P
a
t
t
e
r
n
M
a
t
c
h
e
r
E
x
e
c
u
t
e
[
x
_
I
n
t
e
g
e
r
|
x
_
R
e
a
l
,
3
.
1
4
]
O
u
t
[
7
]
=
R
e
s
u
l
t
T
r
u
e
,
C
y
c
l
e
s
E
x
e
c
u
t
e
d
1
4
,
B
i
n
d
i
n
g
s
G
l
o
b
a
l
`
x
3
.
1
4
S
c
o
p
e
(
2
)
P
r
o
p
e
r
t
i
e
s
&
R
e
l
a
t
i
o
n
s
(
1
)
S
e
e
A
l
s
o
P
a
t
t
e
r
n
M
a
t
c
h
e
r
V
i
r
t
u
a
l
M
a
c
h
i
n
e
▪
P
a
t
t
e
r
n
B
y
t
e
c
o
d
e
▪
P
a
t
t
e
r
n
M
a
t
c
h
e
r
M
a
t
c
h
Q
▪
P
a
t
t
e
r
n
M
a
t
c
h
e
r
R
e
p
l
a
c
e
▪
C
r
e
a
t
e
P
a
t
t
e
r
n
M
a
t
c
h
e
r
V
i
r
t
u
a
l
M
a
c
h
i
n
e
▪
C
o
m
p
i
l
e
P
a
t
t
e
r
n
T
o
B
y
t
e
c
o
d
e
▪
P
a
t
t
e
r
n
M
a
t
c
h
e
r
E
n
a
b
l
e
T
r
a
c
e
▪
P
a
t
t
e
r
n
M
a
t
c
h
e
r
T
r
a
c
e
E
n
a
b
l
e
d
Q
R
e
l
a
t
e
d
G
u
i
d
e
s
▪
A
V
i
r
t
u
a
l
M
a
c
h
i
n
e
f
o
r
t
h
e
P
a
t
t
e
r
n
M
a
t
c
h
e
r
"
"