Fix: support non-alpha unreserved characters