Apache Airflow version: 1.10.*
BackPort Packages version: 2020.10.29rc1

What happened:

BigQueryInsertJobOperator tries to start a BigQuery job by specifying a job_id which is a combination of dag_id, task_id, execution_date and an additional uniqueness_suffix.

https://github.com/PolideaInternal/airflow/blob/e5307990adb49a5a1c1c88a029940682efee0f9e/airflow/providers/google/cloud/operators/bigquery.py#L2073

However, it would appear that the regex pattern that is attempting to remove the `+` character is not correct as this still remain in `job_id` after `re.sub` is applied.

https://github.com/PolideaInternal/airflow/blob/e5307990adb49a5a1c1c88a029940682efee0f9e/airflow/providers/google/cloud/operators/bigquery.py#L2073

`Invalid job ID "airflow_my_test_dag_v1_test_2020_10_01T00_00_00+00_00_27f69de5cd17a012f3c89d414a70fe64". Job IDs must be alphanumeric (plus underscores and dashes) and must be at most 1024 characters long.
`  

How to reproduce it:

- Create a DAG with the name my-test-dag-v1.
- Run any query against BigQuery using this operator
airflow/providers/google/cloud/operators/bigquery.py
If provided all other parameters are ignored.
    :type table_resource: Dict[str, Any]
    :param schema_fields: If set, the schema field list as defined here:
        https://cloud.google.com/bigquery/docs/reference/rest/v2/jobs#configuration.load.schema
        **Example**: ::
            schema_fields=[{"name": "emp_name", "type": "STRING", "mode": "REQUIRED"},
                           {"name": "salary", "type": "INTEGER", "mode": "NULLABLE"}]
    :type schema_fields: list
    :param gcs_schema_object: Full path to the JSON file containing
        schema (templated). For
        example: ``gs://test-bucket/dir1/dir2/employee_schema.json``
    :type gcs_schema_object: str
    :param time_partitioning: configure optional time partitioning fields i.e.
        partition by field, type and  expiration as per API specifications.
        .. seealso::
            https://cloud.google.com/bigquery/docs/reference/rest/v2/tables#timePartitioning
    :type time_partitioning: dict
    :param bigquery_conn_id: [Optional] The connection ID used to connect to Google Cloud and
        interact with the Bigquery service.
    :type bigquery_conn_id: str
    :param google_cloud_storage_conn_id: [Optional] The connection ID used to connect to Google Cloud.
        and interact with the Google Cloud Storage service.
    :type google_cloud_storage_conn_id: str
    :param delegate_to: The account to impersonate using domain-wide delegation of authority,
        if any. For this to work, the service account making the request must have
        domain-wide delegation enabled.
    :type delegate_to: str
    :param labels: a dictionary containing labels for the table, passed to BigQuery
        **Example (with schema JSON in GCS)**: ::
            CreateTable = BigQueryCreateEmptyTableOperator(