import re


def normalize_ark_string(ark_string):
    """
    Reconsitutues the hypens in the UUID portion of the ARK string. The ARK
    spec requires hyphens to be insignificant.

    Assumes that the ARK string contains the optional / after 'ark:', that
    the NAAN is 5 characters long, and that the shoulder is present and is two
    characters long.

    - **ark_string**: an ARK string in the form ark:/12345/y2ee65209e67fe-45fc-a9721da0b602c742
      where the UUID part of the string contains a 2-character shoulder and 0 or more hyphens (-).
    - **identifier**: the identifier portion of the ARK.

    Returns the reconstituted ARK string or False if the UUID is not a valid UUID v4.
    """

    # Everthing up to and including the shoulder.
    prefix = ark_string[:13]
    # Everything after the shoulder; assumed to be a UUID with or without hyphens.
    suffix = ark_string[13:]

    uuid_sans_hyphens = suffix.replace('-', '')
    group5 = uuid_sans_hyphens[20:]
    group4 = uuid_sans_hyphens[16:20]
    group3 = uuid_sans_hyphens[12:16]
    group2 = uuid_sans_hyphens[8:12]
    group1 = uuid_sans_hyphens[:8]

    reconstituted_uuid = f'{group1}-{group2}-{group3}-{group4}-{group5}'
    if not re.match('^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89aAbB][a-f0-9]{3}-[a-f0-9]{12}$', reconstituted_uuid):
        return False

    reconstituted_ark_string = prefix + reconstituted_uuid

    return reconstituted_ark_string