Can delegation be used to set these values at declaration time (thus reducing lines)?
By moving a few things around you could easily get rid of the init block, shortening the amount of lines.

Key parts is to move the Pattern to the companion object, and use .also on the matcher to make sure it is a correct match.

data class CommonLogEntry(private val entry: String) {
    companion object {
        private val formatter: DateTimeFormatter = DateTimeFormatter.ofPattern("dd/MMM/yyyy:HH:mm:ss Z")
        private fun asDateTime(line: String) = LocalDateTime.parse(line, formatter)
        val pattern: Pattern = Pattern.compile("^(\\S+) (\\S+) (\\S+) \\[([\\w:/]+\\s[+\\-]\\d{4})] \"(\\S+) (\\S+)\\s*(\\S+)?\\s*\" (\\d{3}) (\\d+) \"(\\S+)\" \"(\\S+)\"")
    }

    private val m = pattern.matcher(entry).also {
        if (!it.matches() || it.groupCount() != 11)
            throw IllegalArgumentException("Log Pattern doesn't match '$pattern'")
    }
    val clientIp: String = m.group(1)
    val rfc1413identity: String = m.group(2)
    val identity: String = ...
    val requestTime: LocalDateTime = ...
    val verb: String = ...
    val resource: String = ...
    val httpVersion: String = ...
    val statusCode: Int = ...
    val payloadSize: Long = ...
    val URI: URI = ...
    val userAgent: String = ...


However, I have to question the reason for writing this code. I have a feeling there is already some library out there that can parse these log files, it is the "Common Log Format" after all. Also, if you want to parse log files in general I would strongly recommend the tool Splunk which does have a free license for up to 500 MB of logs per day.