Can this use the following regular expression instead:

```ruby
id.match /\A[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\z/
```

In Ruby, `^` will only match the start of a line and `$` will only match the end of a line whereas `\A` will match the absolute start of input and `\z` will match the absolute end of input.  This projects from particular injection attacks but in general, in my opinion, is just more complete.