Fix variable pattern for top-scope references

Correctly parse variable names in top-scope, e.g. $::foo.  Since : is
not a symbol-character, we must not expect a variable name to begin at
symbol-start.  Instead, only put symbol-start before the actual symbol
components.