function schemeInsideOrEmailAtext(code) {
    if (code === codes.colon) {
      effects.consume(code)
      size = 0
      return urlInside
    }

    // ASCII alphanumeric and `+`, `-`, and `.`.
    if (
      (code === codes.plusSign ||
        code === codes.dash ||
        code === codes.dot ||
        asciiAlphanumeric(code)) &&
      size++ < constants.autolinkSchemeSizeMax
    ) {
      effects.consume(code)
      return schemeInsideOrEmailAtext
    }

    size = 0
    return emailAtext(code)
  }
In ambiguous protocol or atext.

```markdown
> | a<https://example.com>b
       ^
> | a<user@example.com>b
       ^
```

@type {State}