I tried
```
  def apply(latLon: String): GeoLatLon = {
    latLon match {
      case GeoPoint.latLonPattern(lat, lon) => new GeoLatLon(lat = lat.toDouble, lon = lon.toDouble)
      case badLatLon => throw new IllegalArgumentException("Bad geo_point(lat, lon) value: " + badLatLon.toString)
    }
  }
```
But that caused errors in the tests, and I could not figure out why.
So I left the old code, which does not check for errors, and does not use regular expression groups.