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 job.error_result:
            raise AirflowException(f"BigQuery job {job.job_id} failed: {job.error_result}")
    def _job_id(self, context):
        if self.force_rerun:
            hash_base = str(uuid.uuid4())
        else:
            hash_base = json.dumps(self.configuration, sort_keys=True)
        uniqueness_suffix = hashlib.md5(hash_base.encode()).hexdigest()
        if self.job_id:
            return f"{self.job_id}_{uniqueness_suffix}"
        exec_date = context['execution_date'].isoformat()
        job_id = f"airflow_{self.dag_id}_{self.task_id}_{exec_date}_{uniqueness_suffix}"
        return re.sub(r"\:|-|\+\.", "_", job_id)
    def execute(self, context: Any):
        hook = BigQueryHook(
            gcp_conn_id=self.gcp_conn_id,
            delegate_to=self.delegate_to,
            impersonation_chain=self.impersonation_chain,
        )
        self.hook = hook