code: public PeriodFormatterBuilder appendSuffix(String[] regularExpressions, String[] suffixes) {
          if (regularExpressions == null || suffixes == null ||
                  regularExpressions.length < 1 || regularExpressions.length != suffixes.length) {
              throw new IllegalArgumentException();
          }
          return appendSuffix(new RegExAffix(regularExpressions, suffixes));
      }
docs: Append a field suffix which applies only to the last appended field.
  If the field is not printed, neither is the suffix.
  <p>
  The value is converted to String. During parsing, the suffix is selected based
  on the match with the regular expression. The index of the first regular
  expression that matches value converted to String nominates the suffix. If
  none of the regular expressions match the value converted to String then the
  last suffix is selected.
  <p>
  An example usage for English might look like this:
  
  <pre>
  appendSuffix(new String[] { &quot;&circ;1$&quot;, &quot;.*&quot; }, new String[] { &quot; year&quot;, &quot; years&quot; })
  </pre>
  
  <p>
  Please note that for languages with simple mapping (singular and plural suffix
  only - like the one above) the {@link #appendSuffix(String, String)} method
  will result in a slightly faster formatter and that
  {@link #appendSuffix(String[], String[])} method should be only used when the
  mapping between values and prefixes is more complicated than the difference between
  singular and plural.
  
  @param regularExpressions  an array of regular expressions, at least one
  element, length has to match the length of suffixes parameter
  @param suffixes  an array of suffixes, at least one element, length has to
  match the length of regularExpressions parameter
  @return this PeriodFormatterBuilder
  @throws IllegalStateException if no field exists to append to
  @see #appendPrefix
  @since 2.5