catalog.redhat.com Open in urlscan Pro
2a02:26f0:480:d::210:f146  Public Scan

Submitted URL: https://access.redhat.com/containers/#/registry.access.redhat.com/ubi8-minimal/images/8.6-941
Effective URL: https://catalog.redhat.com/
Submission: On April 09 via api from GB — Scanned from GB

Form analysis 1 forms found in the DOM

<form class="pf-c-form" style="margin-top:16px" id="ecoFeedbackForm"><input type="hidden" name="form_build_id" value="form-Se0bIPh-L26lbPDwUP218Z2oRfKjEYbIRvKBM4Eo1R8"> <input type="hidden" name="form_token"
    value="w3-skVyKDZSGJUXAawp-QF6jqc-WeSZqCxXqWnqMaBg"> <input type="hidden" name="form_id" value="rhec_feedback_entityform_edit_form">
  <div style="display:flex" class="mobile-stack">
    <div class="pf-c-form__group" style="flex:1;padding-right:16px"><label class="pf-c-form__label" for="field_eco_company[und][0][value]"><span class="pf-c-form__label-text">Your company/organization</span></label>
      <div class="pf-c-form__horizontal-group"><input class="pf-c-form-control" id="company" name="field_eco_company[und][0][value]"></div>
    </div>
    <div class="pf-c-form__group" style="flex:1"><label class="pf-c-form__label" for="field_eco_role[und][0][value]"><span class="pf-c-form__label-text">Your role</span></label>
      <div class="pf-c-form__horizontal-group"><select class="pf-c-form-control" style="padding-left:8px" id="role" name="field_eco_role[und][0][value]">
          <option value="">Select your role</option>
          <option value="Architect">Architect</option>
          <option value="Developer">Developer</option>
          <option value="DevOps Engineer">DevOps Engineer</option>
          <option value="Product Manager">Product Manager</option>
          <option value="Systems Administrator">Systems Administrator</option>
          <option value="Other">Other</option>
        </select></div>
    </div>
  </div>
  <div class="pf-c-form__group"><label class="pf-c-form__label" for="field_eco_what_is_working_well[und][0][value]"><span class="pf-c-form__label-text">What is working well?</span></label>
    <div class="pf-c-form__horizontal-group"><textarea class="pf-c-form-control" type="text" id="workingWell" name="field_eco_what_is_working_well[und][0][value]" aria-label="textarea example"></textarea></div>
  </div>
  <div class="pf-c-form__group"><label class="pf-c-form__label" for="field_eco_how_can_we_improve[und][0][value]"><span class="pf-c-form__label-text">How can we continue to improve?</span></label>
    <div class="pf-c-form__horizontal-group"><textarea class="pf-c-form-control" type="text" id="toImprove" name="field_eco_how_can_we_improve[und][0][value]" aria-label="textarea example"></textarea></div>
  </div>
  <div class="pf-c-form__group"><label class="pf-c-form__label" for="field_eco_email[und][0][value]"><span class="pf-c-form__label-text">Email address (optional)</span></label>
    <div class="pf-c-form__horizontal-group pf-c-form__horizontal-group--email"><input class="pf-c-form-control" type="email" id="email" name="field_eco_email[und][0][value]">
      <p>We may follow up with you if we need more information to act on your feedback.</p>
    </div>
  </div>
  <div class="pf-c-form__group hidden"><label class="pf-c-form__label" for="field_eco_describe_your_issue[und][0][value]"><span class="pf-c-form__label-text">Describe your issue (optional)</span></label>
    <div class="pf-c-form__horizontal-group"><textarea class="pf-c-form-control" type="text" id="toDescribeIssue" name="field_eco_describe_your_issue[und][0][value]" aria-label="textarea example"></textarea></div>
  </div>
  <div class="pf-c-form__group">
    <div class="pf-c-form__actions">
      <div class="cover-spinner__container"><pfe-progress-indicator indeterminate="" size="md" pfelement="" class="PFElement" on="light"></pfe-progress-indicator></div><button class="pf-c-button pf-m-primary" id="ecoFeedbackFormSubmitBtn"
        disabled="true">Submit</button> <button class="pf-c-button pf-m-secondary" type="button" id="modalClose">Cancel</button>
    </div>
  </div>
</form>

Text Content

Skip to navigation Skip to contentYou need to enable JavaScript to run this app.
 * Platforms & industries
   
   
   RED HAT ENTERPRISE LINUX
   
    * Certified software
    * Certified hardware
    * Cloud & service providers
   
   
   RED HAT OPENSHIFT
   
    * Certified software
    * Cloud & service providers
   
   
   RED HAT OPENSTACK
   
    * Certified software
    * Certified hardware
    * Cloud & service providers
   
   
   INDUSTRIES AND SEGMENTS
   
    * Telecommunications

 * Hardware
   
   
   BY CATEGORY
   
    * Servers
    * Edge systems
    * Workstations
    * Components
   
   
   FEATURED LISTS
   
    * Red Hat Enterprise Linux 8 certified servers
    * Red Hat OpenStack 16 certified servers
    * Red Hat Virtualization 4 certified servers
   
   Explore certified hardware
 * Software
   
   
   BY CATEGORY
   
    * OpenShift operators
    * Helm charts
    * Containerized applications
    * OpenStack infrastructure
    * Standalone applications
    * Container images
    * Vulnerability scanners
   
   
   FEATURED LISTS
   
    * OpenShift operators for Red Hat OpenShift 4
    * Standalone applications for Red Hat Enterprise Linux 9
    * CNF certified for Red Hat OpenShift
    * VNF certified for Red Hat OpenStack
   
   
   BASE IMAGES
   
    * About base images
    * Red Hat Universal Base Image 9
    * Red Hat Universal Base Image 8
    * Red Hat Universal Base Image 7
   
   Explore certified softwareManage container registry service accounts
 * Cloud & service providers
   
   
   BY CONSUMPTION TYPE
   
    * Upload an image
    * On demand
   
   
   FEATURED LISTS
   
    * Certified for Red Hat Enterprise Linux 9
   
   
   LEARN MORE
   
    * Red Hat Cloud Access
   
   Explore certified cloud

Help

Resources


RESOURCES

 * Blog
 * Partner podcast


MORE TO EXPLORE

 * All blogs
 * Events and webinars
 * Training and certification
 * Newsroom
 * Resource library
 * Customer success stories

All Red Hat
Back to menu

 * You are here
   
   
   
   
   RED HAT
   
   Learn about our open source products, services, and company.

 * You are here
   
   
   
   
   RED HAT CUSTOMER PORTAL
   
   Get product support and knowledge from the open source experts.

 * You are here
   
   
   
   
   RED HAT DEVELOPER
   
   Read developer tutorials and download Red Hat software for cloud application
   development.

 * You are here
   
   
   
   
   RED HAT PARTNER CONNECT
   
   Become a Red Hat partner and get support in building customer solutions.

--------------------------------------------------------------------------------


 * PRODUCTS
   
   
   * ANSIBLE.COM
     
     Learn about and try our IT automation product.


 * TRY, BUY, SELL
   
   
   * RED HAT HYBRID CLOUD
     
     Access technical how-tos, tutorials, and learning paths focused on Red
     Hat’s hybrid cloud managed services.
   
   
   * RED HAT STORE
     
     Buy select Red Hat products and services online.
   
   
   * RED HAT MARKETPLACE
     
     Try, buy, sell, and manage certified enterprise software for
     container-based environments.


 * COMMUNITY & OPEN SOURCE
   
   
   * THE ENTERPRISERS PROJECT
     
     Read analysis and advice articles written by CIOs, for CIOs.
   
   
   * OPENSOURCE.COM
     
     Read articles on a range of topics about open source.


 *  
   
   
   * RED HAT SUMMIT
     
     Register for and learn about our annual open source IT industry event.
   
   
   * RED HAT ECOSYSTEM CATALOG
     
     Find hardware, software, and cloud providers―and download container
     images―certified to perform with Red Hat technologies.


TESTED. CERTIFIED. SUPPORTED.

Build on Red Hat platforms and technologies with certified, enterprise-grade
products you need to achieve your business outcomes. We make it easy for you to
explore and find certified products from our large and robust ecosystem of
enterprise hardware, software, and cloud and service providers.


BROWSE BY PLATFORM

The leading enterprise Linux operating system, certified on hundreds of clouds
and with thousands of vendors.

Explore

Red Hat® OpenShift® is an enterprise-ready Kubernetes container platform with
full-stack automated operations to manage hybrid cloud, multicloud, and edge
deployments.

Explore

Red Hat® OpenStack® Platform virtualizes resources from industry-standard
hardware, organizes those resources into clouds, and manages them so users can
access what they need—when they need it.

Explore

Red Hat® Ansible® Automation Platform is a foundation for building and operating
automation across an organization.

Explore


STABLE ANYWHERE. AVAILABLE EVERYWHERE.

Red Hat Enterprise Linux 9 has arrived. Browse the latest products certified for
Red Hat Enterprise Linux 9. Learn more

Certified hardwareCertified softwareCertified cloud


BROWSE BY CATEGORY


CERTIFIED HARDWARE

Bare metal, appliances, and other hardware from Red Hat partners is certified
and supported for Red Hat technologies.

Explore


CERTIFIED SOFTWARE

OpenShift operators, containerized applications, and traditional software
certified to run on Red Hat platforms.

Explore


CERTIFIED CLOUD AND SERVICE PROVIDERS

Run your applications on Red Hat platforms and technologies in supported clouds
and cloud service providers.

Explore


RED HAT BLOGS


TIPS FOR HANDLING LOCALIZED RANGES IN REGULAR EXPRESSIONS

By Carlos O'Donell|Published Thu, 06 Apr 2023 07:00:00 +0000



Developers as well as casual grep users are accustomed to using ranges in
regular expressions, such as [a-zA-Z] or [0-9]. However, they often don't
realize that these regular expressions harbor problems that can lead to
unexpected behavior.

This article delves into the issues with using ranges in different locales and
the solutions sought by developers of various libraries, including the GNU C
Library (glibc).


THE PROBLEM WITH REGULAR EXPRESSION RANGES

Under the POSIX standard, a regular expression using a range expression has
unspecified behavior in any locale other than the POSIX locale. This locale
applies only to programs or environments whose environment variables for the
locale (such as LANG or LC_ALL) specify either POSIX or C, or who don't have
those environment variables set at all.

Of course, this hardly ever happens. Most people specify their country and
language when setting up their system and get a locale such as en_US.UTF-8, in
this case, indicating U.S. English with UTF-8 characters.

For most programs and users, therefore, a popular regular expression range such
as [a-zA-Z] or [0-9] has undefined and ultimately unreliable behavior. In
theory, users should employ bracket expressions such as [[:alpha:]] and
[[:digit:]]. In practice, it works as expected in many, but not all, locales.

What should a library do to support developers and make developing applications
easier? We will explore current and upcoming solutions in the next sections.


POSSIBLE SOLUTIONS AND THEIR RELATIONSHIPS TO POSIX AND UNICODE

There are a number of possible solutions. The support for ranges such as
[a-zA-Z] in the C (POSIX) locale is a clue that support for the ranges was
implemented by early C libraries when ASCII was the norm. Although there
are many conflicting solutions, each generally maps to one of the following
implementations:

 * Native character order (NCO): This means that a developer looking at a code
   chart for the character set can logically identify all characters in the
   range by reviewing, in order, those characters in the code chart from the
   start of the range to the end of the range.
 * Collation element order (CEO): This means that a developer looking at the
   locale sources for the current locale can logically identify all characters
   in the range by reviewing, in order, those characters in the LC_COLLATE
   definition in the POSIX locale sources (later compiled into the binary locale
   on your system, e.g., en_US.UTF-8) from the start of the range to the end of
   the range.
 * Collation sequence order (CSO): This means that a developer looking at, for
   one definition of a natural language order, a dictionary with said natural
   language order can logically identify all characters in the range by
   reviewing, in order, those characters in the dictionary from the start of the
   range to the end of the range.

For example, in the article Boost C++ POSIX regular extended expression APIs,
the authors implemented CSO with an option to fall back to NCO. As another
example, the GNU Awk (Gawk) implementation has two modes: a "traditional"
mode that emulates NCO within certain ASCII ranges and a POSIX-based mode that
emulates CSO. The Boost and Gawk implementations offer a very similar degree of
choice between NCO and CSO.

In glibc, the implementation is based on the early POSIX specifications that
required CEO. In the built-in C and POSIX locale, the NCO and CEO are equivalent
because the ASCII character set order can be ordered the same as the collation
elements in the locale source specification. The glibc locale for
en_US.UTF-8 makes the NCO and CEO equivalent for lowercase Latin characters,
uppercase Latin characters, and numbers in order to preserve developer
expectations for sorting these ranges; e.g., lowercase Latin characters are not
interleaved with uppercase Latin characters.

CEO and CSO require large element lists and thus add a lot more overhead to
implementations than NCO.

The published ISO 14651 (2020) standard, most recently derived from Unicode
13.0.0 (2020), defines the international string ordering and comparison, and
glibc uses this standard as the basis for string collation. The collation
element ordering in the ISO standard interleaves lowercase and uppercase
characters in such a way that CEO is more aligned to logical groups of letters
e.g. A and a, instead of NCO. Direct usage of ISO 14651 in glibc
caused regressions due to this grouping; e.g., [a-z] would match A unexpectedly.


CURRENT AND UPCOMING SOLUTIONS

Boost's interface allows one to choose between a logical NCO or CSO (as defined
for a single natural language ordering), thus offering two of three solutions
listed in the previous section. A user who desires a distinct CEO can create a
completely new locale source definition and distribute that to users that want a
distinct ordering. Thread-safe locale APIs can be used to set and use the locale
on a per-thread basis.

The APIs implemented by the ICU project support many possible CSOs for a given
language, including dictionary sort, address book sort, calendar sort, etc. No
single CSO will solve the needs of all users.

The glibc implementation of CEO does not meet the needs of developers who are
either looking at a code chart or applying common-sense logic to natural
language ordering. Migrating glibc from CEO to CSO seems like a logical way
forward, but the internal implementation will need to be significantly improved
to support this transition. The most straightforward first step is a C.UTF-8
that uses NCO in glibc and avoids the overhead of CEO or CSO.

With the release of glibc 2.35 in February 2022, the project now has an official
harmonized and C.UTF-8 that will use NCO for ASCII regular expression ranges and
NCO for collation (code-point collation order).

You can already use this new C.UTF-8 locale in Fedora (starting with Fedora
35).  In the future, C.UTF-8 will be extended to allow rational ranges that
cover all code points in NCO.

The post Tips for handling localized ranges in regular expressions appeared
first on Red Hat Developer.







Read the articleView more blog posts



RED HAT MARKETPLACE

Red Hat® Marketplace is a single source to try, buy, and manage certified
operators for Red Hat OpenShift®. It offers responsive support, streamlined
billing and contracting, simplified governance, and a single dashboard across
clouds.

Explore Red Hat Marketplace



WHY CHOOSE RED HAT CERTIFIED SOLUTIONS?

Built and tested to exacting standards. Ready to deploy in your environment with
confidence.

Detailed interoperability, compatibility, and security details to choose the
right solutions for your business needs.

Fully supported by the provider while maintaining your relationship with Red
Hat’s global support services.


PARTNER WITH RED HAT

We provide a variety of partner resources to assist you through the
certification process to deliver the best possible experience to our mutual
customers. Join the Red Hat Certified Ecosystem and showcase your product to
millions of potential clients, customers, sellers, and developers.

Learn more about how Red Hat Partner Connect can help you succeed
Timestamp: Mon Apr 3 16:59:09 UTC 2023SHA: headVersion: 1.195
LinkedInYouTubeFacebookTwitter


PLATFORMS

 * Red Hat Enterprise Linux
 * Red Hat OpenShift
 * Red Hat OpenStack Platform


PRODUCTS & SERVICES

 * Certified hardware
 * Certified software
 * Certified cloud & service providers


TRY, BUY, SELL

 * Product trial center
 * Red Hat Store
 * Red Hat Marketplace
 * Partner with us
 * Contact sales
 * Contact training
 * Contact consulting


HELP

 * My account
 * Customer support
 * Partner resources
 * Developer resources
 * Training and certification
 * Learning community
 * Catalog documentation
 * Resource library


ABOUT RED HAT ECOSYSTEM CATALOG

The Red Hat Ecosystem Catalog is the official source for discovering and
learning more about the Red Hat Ecosystem of both Red Hat and certified
third-party products and services.

We’re the world’s leading provider of enterprise open source solutions—including
Linux, cloud, container, and Kubernetes. We deliver hardened solutions that make
it easier for enterprises to work across platforms and environments, from the
core datacenter to the network edge.


RED HAT LEGAL AND PRIVACY LINKS

 * About Red Hat
 * Jobs
 * Events
 * Locations
 * Contact Red Hat
 * Red Hat Blog
 * Diversity, equity, and inclusion
 * Cool Stuff Store
 * Red Hat Summit


RED HAT LEGAL AND PRIVACY LINKS

 * Privacy statement
 * Terms of use
 * All policies and guidelines
 * Digital accessibility



SUCCESS ALERT: THANK YOU FOR YOUR FEEDBACK!

Have feedback?


YOUR FEEDBACK IS IMPORTANT TO US

Your company/organization

Your role
Select your roleArchitectDeveloperDevOps EngineerProduct ManagerSystems
AdministratorOther
What is working well?

How can we continue to improve?

Email address (optional)

We may follow up with you if we need more information to act on your feedback.

Describe your issue (optional)


Submit Cancel