### Describe the bug

I'm trying to add a request interceptor with the following code:

```typescript
  myInterceptor = (config: InternalAxiosRequestConfig): InternalAxiosRequestConfig => {    
    config.headers.set('a1', 'value');
    return config;
  };
```
It turns out is has no effect.

I believe it is due to the incorrect `isValidHeaderName`  function https://github.com/axios/axios/blob/v1.x/lib/core/AxiosHeaders.js#L32-L34:

```
function isValidHeaderName(str) {
  return /^[-_a-zA-Z]+$/.test(str.trim());
}
```

And been called with https://github.com/axios/axios/blob/v1.x/lib/core/AxiosHeaders.js#L103-L107

```
    } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {
      setHeaders(parseHeaders(header), valueOrRewrite);
    } else {
      header != null && setHeader(valueOrRewrite, header, rewrite);
    }
```

Because `isValidHeaderName(header)` returns `false`, so it goes to `setHeaders(parseHeaders(header), valueOrRewrite);` logic where `parseHeaders(header)` gets nothing form `a1` string.

Actually `isValidHeaderName(header)` should return `true` for `a1` and goto the else branch:
```
header != null && setHeader(valueOrRewrite, header, rewrite);
```
which will set the `a1` header correctly.

----
Accroding to rfc9110:
- https://www.rfc-editor.org/rfc/rfc9110.html#name-fields
- https://www.rfc-editor.org/rfc/rfc9110.html#name-tokens
digits are allowed in header names.


### To Reproduce

Run the below code here: https://runkit.com/embed/3ic1gajcu2yn

### Code snippet

```js
const {AxiosHeaders} = require("axios")

const headers = new AxiosHeaders();
headers.set('a1', 'value')
headers.get('a1') // -> undefined
```


### Expected behavior

Expected the header been successfully set. And headers.get('a1') returns `value`.

### Axios Version

1.3.4

### Adapter Version

_No response_

### Browser

_No response_

### Browser Version

_No response_

### Node.js Version

14

### OS

_No response_

### Additional Library Versions

_No response_

### Additional context/Screenshots

_No response_
lib/core/AxiosHeaders.js
return header.trim()
    .toLowerCase().replace(/([a-z\d])(\w*)/g, (w, char, str) => {
      return char.toUpperCase() + str;
    });
}
function buildAccessors(obj, header) {
  const accessorName = utils.toCamelCase(' ' + header);
  ['get', 'set', 'has'].forEach(methodName => {
    Object.defineProperty(obj, methodName + accessorName, {
      value: function(arg1, arg2, arg3) {
        return this[methodName].call(this, header, arg1, arg2, arg3);
      },
      configurable: true
    });
  });
}
class AxiosHeaders {