[libc++] Granularize <iterator> includes

Reviewed By: ldionne, #libc

Spies: libcxx-commits, wenlei

Differential Revision: https://reviews.llvm.org/D127445

NOKEYCHECK=True
GitOrigin-RevId: 3cd4531b9ba421d1d096e746d787fe3039a546bb
diff --git a/include/regex b/include/regex
index 5d07874..a6ad7d6 100644
--- a/include/regex
+++ b/include/regex
@@ -766,6 +766,8 @@
 #include <__algorithm/search.h>
 #include <__assert> // all public C++ headers provide the assertion handler
 #include <__config>
+#include <__iterator/access.h>
+#include <__iterator/back_insert_iterator.h>
 #include <__iterator/wrap_iter.h>
 #include <__locale>
 #include <__utility/move.h>
@@ -773,7 +775,7 @@
 #include <compare>
 #include <deque>
 #include <initializer_list>
-#include <iterator>
+#include <iterator> // TODO: Remove this include
 #include <memory>
 #include <stdexcept>
 #include <string>