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
"""
    Executes BigQuery SQL queries in a specific BigQuery database.
    This operator does not assert idempotency.
    :param sql: the sql code to be executed (templated)
    :type sql: Can receive a str representing a sql statement,
        a list of str (sql statements), or reference to a template file.
        Template reference are recognized by str ending in '.sql'.
    :param destination_dataset_table: A dotted
        ``(<project>.|<project>:)<dataset>.<table>`` that, if set, will store the results
        of the query. (templated)
    :type destination_dataset_table: str
    :param write_disposition: Specifies the action that occurs if the destination table
        already exists. (default: 'WRITE_EMPTY')
    :type write_disposition: str
    :param create_disposition: Specifies whether the job is allowed to create new tables.
        (default: 'CREATE_IF_NEEDED')
    :type create_disposition: str
    :param allow_large_results: Whether to allow large results.
    :type allow_large_results: bool
    :param flatten_results: If true and query uses legacy SQL dialect, flattens
        all nested and repeated fields in the query results. ``allow_large_results``
        must be ``true`` if this is set to ``false``. For standard SQL queries, this
        flag is ignored and results are never flattened.
    :type flatten_results: bool
    :param gcp_conn_id: (Optional) The connection ID used to connect to Google Cloud.
    :type gcp_conn_id: str
    :param bigquery_conn_id: (Deprecated) The connection ID used to connect to Google Cloud.
        This parameter has been deprecated. You should pass the gcp_conn_id parameter instead.
    :type bigquery_conn_id: str