pattern symbols
M     a known mine
0-8     a square with this number in it
-     a square known not to be a mine
+     a known square of any sort (including mines)
?     an unexplored square
*,#,$     each of these will match any square
a-z     a square with a number in it, and the number is remembered
|     a square off the board
NOTE: You do not need to create separate rules for symmetric patterns;
the system will automatically try each rule in every possible rotation and reflection.

scheme variables
a, b, c, etc...     number matched by the given letter
a-mine-count, b-mine-count, etc...     number of known mines surrounding the given letter
star-mine-count     number of known mines matched by *'s
star-unknown-count     number of ?'s matched by *'s
pound-mine-count
pound-unknown-count
dollar-mine-count
dollar-unknown-count
plus-mine-count
plus-unknown-count
    same as above for #'s, $'s, and +'s.
    note that plus-unknown-count will always equal 0

right-hand-side commands
click-stars     explores all the unexplored squares under stars in the LHS pattern
mark-stars     marks all the unexplored squares under stars in the LHS pattern as mines
click-pounds
mark-pounds
click-dollars
mark-dollars
click-plusses
mark-plusses
    same as above for #'s, $'s, and +'s.