An adventure-style workshop for regular expressions in JavaScript